diff --git a/.github/workflows/compile_frogpilot.yaml b/.github/workflows/compile_starpilot.yaml similarity index 90% rename from .github/workflows/compile_frogpilot.yaml rename to .github/workflows/compile_starpilot.yaml index f8191362..37920c3d 100644 --- a/.github/workflows/compile_frogpilot.yaml +++ b/.github/workflows/compile_starpilot.yaml @@ -1,4 +1,4 @@ -name: Compile FrogPilot +name: Compile StarPilot on: workflow_dispatch: @@ -13,18 +13,18 @@ on: type: string default: "" required: false - publish_frogpilot: - description: "Push to FrogPilot" + publish_starpilot: + description: "Push to StarPilot" type: boolean default: false required: false publish_staging: - description: "Push to FrogPilot-Staging" + description: "Push to StarPilot-Staging" type: boolean default: false required: false publish_testing: - description: "Push to FrogPilot-Testing" + description: "Push to StarPilot-Testing" type: boolean default: false required: false @@ -88,7 +88,7 @@ jobs: with: ref: ${{ needs.get_branch.outputs.branch }} sparse-checkout: | - frogpilot/ui/ + starpilot/ui/ selfdrive/controls/lib/alerts_offroad.json selfdrive/ui/ selfdrive/ui/translations/ @@ -151,7 +151,7 @@ jobs: git config http.postBuffer 104857600 git config user.name "$GIT_NAME" git config user.email "$GIT_EMAIL" - git remote set-url origin "https://${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/FrogAi/FrogPilot.git" + git remote set-url origin "https://${{ secrets.PERSONAL_ACCESS_TOKEN }}@github.com/FrogAi/StarPilot.git" - name: Sync Translation Updates if: inputs.update_translations @@ -181,7 +181,7 @@ jobs: find .github -mindepth 1 -maxdepth 1 ! -name 'workflows' -exec rm -rf {} + find .github/workflows -mindepth 1 ! \( \ -type f \( \ - -name 'compile_frogpilot.yaml' -o \ + -name 'compile_starpilot.yaml' -o \ -name 'review_pull_request.yaml' -o \ -name 'schedule_update.yaml' -o \ -name 'update_pr_branch.yaml' -o \ @@ -214,24 +214,24 @@ jobs: if: inputs.publish_staging continue-on-error: true run: | - curl -fLsS https://raw.githubusercontent.com/FrogAi/FrogPilot/FrogPilot-Staging/.github/update_date -o .github/update_date || echo "No update_date found, skipping..." + curl -fLsS https://raw.githubusercontent.com/FrogAi/StarPilot/StarPilot-Staging/.github/update_date -o .github/update_date || echo "No update_date found, skipping..." - name: Commit and Push Build run: | git add -f . - git commit -m "Compile FrogPilot" + git commit -m "Compile StarPilot" git push --force origin HEAD - if [ "${{ inputs.publish_frogpilot }}" = "true" ]; then - git push --force origin HEAD:FrogPilot + if [ "${{ inputs.publish_starpilot }}" = "true" ]; then + git push --force origin HEAD:StarPilot fi if [ "${{ inputs.publish_staging }}" = "true" ]; then - git push --force origin HEAD:FrogPilot-Staging + git push --force origin HEAD:StarPilot-Staging fi if [ "${{ inputs.publish_testing }}" = "true" ]; then - git push --force origin HEAD:FrogPilot-Testing + git push --force origin HEAD:StarPilot-Testing fi if [ -n "$CUSTOM_BRANCH" ]; then diff --git a/.github/workflows/review_pull_request.yaml b/.github/workflows/review_pull_request.yaml index d2e02a3b..3b10a2c3 100644 --- a/.github/workflows/review_pull_request.yaml +++ b/.github/workflows/review_pull_request.yaml @@ -34,5 +34,5 @@ jobs: echo "Valid target branch." gh pr comment "$PR_NUMBER" --repo "$REPO" \ - --body "Thank you for your PR! If you're not already in the FrogPilot Discord, [feel free to join](https://discord.FrogPilot.com) and let me know you've opened a PR!" + --body "Thank you for your PR! If you're not already in the StarPilot Discord, [feel free to join](https://discord.StarPilot.com) and let me know you've opened a PR!" fi diff --git a/.github/workflows/schedule_update.yaml b/.github/workflows/schedule_update.yaml index 9aa585a3..e48cb42b 100644 --- a/.github/workflows/schedule_update.yaml +++ b/.github/workflows/schedule_update.yaml @@ -1,16 +1,16 @@ -name: Schedule FrogPilot Update +name: Schedule StarPilot Update on: workflow_dispatch: inputs: scheduled_date: - description: "Enter the date to update the \"FrogPilot\" branch (YYYY-MM-DD)" + description: "Enter the date to update the \"StarPilot\" branch (YYYY-MM-DD)" required: true env: GIT_EMAIL: "91348155+FrogAi@users.noreply.github.com" GIT_NAME: "James" - TARGET_BRANCH: "FrogPilot-Staging" + TARGET_BRANCH: "StarPilot-Staging" UPDATE_FILE_PATH: ".github/update_date" jobs: diff --git a/.github/workflows/update_pr_branch.yaml b/.github/workflows/update_pr_branch.yaml index d7c5d231..5891c6eb 100644 --- a/.github/workflows/update_pr_branch.yaml +++ b/.github/workflows/update_pr_branch.yaml @@ -4,13 +4,13 @@ run-name: Update MAKE-PRS-HERE on: push: branches: - - FrogPilot-Testing + - StarPilot-Testing env: GIT_EMAIL: "91348155+FrogAi@users.noreply.github.com" GIT_NAME: "James" GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} - SOURCE_BRANCH: FrogPilot-Testing + SOURCE_BRANCH: StarPilot-Testing TARGET_BRANCH: MAKE-PRS-HERE TZ: America/Phoenix @@ -33,13 +33,13 @@ jobs: git config --global user.name "$GIT_NAME" git config --global user.email "$GIT_EMAIL" - - name: Revert "Compile FrogPilot" + - name: Revert "Compile StarPilot" id: prepare_source run: | - COMPILE_COMMIT=$(git rev-list HEAD -n 1 --grep="Compile FrogPilot" || true) + COMPILE_COMMIT=$(git rev-list HEAD -n 1 --grep="Compile StarPilot" || true) if [ -n "$COMPILE_COMMIT" ]; then - echo "Found 'Compile FrogPilot' at $COMPILE_COMMIT. Reverting..." + echo "Found 'Compile StarPilot' at $COMPILE_COMMIT. Reverting..." git revert --no-edit "$COMPILE_COMMIT" else echo "Compile commit not found. Proceeding with current source state." diff --git a/.github/workflows/update_release_branch.yaml b/.github/workflows/update_release_branch.yaml index 82f981c3..7e289002 100644 --- a/.github/workflows/update_release_branch.yaml +++ b/.github/workflows/update_release_branch.yaml @@ -1,13 +1,13 @@ -name: Update FrogPilot Branch +name: Update StarPilot Branch on: schedule: - cron: "0 18 * * 6" env: - BRANCH_FROGPILOT: FrogPilot - BRANCH_PREVIOUS: FrogPilot-Previous - BRANCH_STAGING: FrogPilot-Staging + BRANCH_STARPILOT: StarPilot + BRANCH_PREVIOUS: StarPilot-Previous + BRANCH_STAGING: StarPilot-Staging GIT_EMAIL: "91348155+FrogAi@users.noreply.github.com" GIT_NAME: "James" GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} @@ -102,6 +102,6 @@ jobs: - name: Push and Sync Branches run: | git push origin "$BRANCH_STAGING" --force - git fetch origin "$BRANCH_FROGPILOT:$BRANCH_FROGPILOT" - git push origin "$BRANCH_FROGPILOT:$BRANCH_PREVIOUS" --force - git push origin "$BRANCH_STAGING:$BRANCH_FROGPILOT" --force + git fetch origin "$BRANCH_STARPILOT:$BRANCH_STARPILOT" + git push origin "$BRANCH_STARPILOT:$BRANCH_PREVIOUS" --force + git push origin "$BRANCH_STAGING:$BRANCH_STARPILOT" --force diff --git a/.github/workflows/update_tinygrad.yaml b/.github/workflows/update_tinygrad.yaml index 101fa3ed..17b61dcc 100644 --- a/.github/workflows/update_tinygrad.yaml +++ b/.github/workflows/update_tinygrad.yaml @@ -15,8 +15,8 @@ on: env: GIT_EMAIL: "91348155+FrogAi@users.noreply.github.com" GIT_NAME: "James" - GITLAB_REPO_DIR: "FrogPilot-Resources" - GITLAB_URL: "gitlab.com/FrogAi/FrogPilot-Resources.git" + GITLAB_REPO_DIR: "StarPilot-Resources" + GITLAB_URL: "gitlab.com/FrogAi/StarPilot-Resources.git" OPENPILOT_DIR: "/data/openpilot" jobs: @@ -26,7 +26,7 @@ jobs: - name: Get Version id: get_version run: | - VERSION=$(grep -oP '^VERSION\s*=\s*"\K[^"]+' "$OPENPILOT_DIR/frogpilot/assets/model_manager.py") + VERSION=$(grep -oP '^VERSION\s*=\s*"\K[^"]+' "$OPENPILOT_DIR/starpilot/assets/model_manager.py") echo "VERSION=$VERSION" echo "version=$VERSION" >> "$GITHUB_OUTPUT" @@ -35,7 +35,7 @@ jobs: env: GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }} run: | - WORK_DIR="$RUNNER_TEMP/frogpilot_tinygrad" + WORK_DIR="$RUNNER_TEMP/starpilot_tinygrad" rm -rf "$WORK_DIR" && mkdir -p "$WORK_DIR" echo "work_dir=$WORK_DIR" >> "$GITHUB_OUTPUT" diff --git a/README.md b/README.md index 7eb00a88..5d84539e 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ Openpilot provides StarPilot adds support for many GM vehicles along with improved tuning, especially for radar-less (camera only) vehicles. -StarPilot is built off of [FrogPilot](https://github.com/FrogAi/FrogPilot) -and supports the major features FrogPilot offers. +StarPilot is built off of [StarPilot](https://github.com/FrogAi/StarPilot) +and supports the major features StarPilot offers. StarPilot has a vibrant, welcoming community [discord](https://firestar.link/discord). Stop by to chat or ask questions! @@ -48,7 +48,7 @@ Download models, change settings, update software, visualize live model outputs * High quality dashcam recordings* * Enhanced tuning for CEM (dynamic experimental mode switching) -\* [Inherited from FrogPilot](https://github.com/FrogAi/FrogPilot#openpilot-vs-frogpilot) +\* [Inherited from StarPilot](https://github.com/FrogAi/StarPilot#openpilot-vs-starpilot) ## GM-only Features diff --git a/UICheatSheet.md b/UICheatSheet.md index 9ca52aef..177c99e8 100644 --- a/UICheatSheet.md +++ b/UICheatSheet.md @@ -637,7 +637,7 @@ Legend: ✅ = Full | 🟡 = Structure/stub | 🔴 = Not started #### Completed (March 17, 2026) - **Created `StarPilotState` singleton** (`selfdrive/ui/lib/starpilot_state.py`) with: - `StarPilotCarState` dataclass with all car type, capability, and value fields - - Reads `CarParamsPersistent`, `FrogPilotCarParamsPersistent`, `LiveTorqueParameters`, `FrogPilotToggles` from Params + - Reads `CarParamsPersistent`, `StarPilotCarParamsPersistent`, `LiveTorqueParameters`, `StarPilotToggles` from Params - Throttled updates (2.0s interval) to avoid slowing UI - PC/desktop fallback mode with configurable car make/model - Global import: `from openpilot.selfdrive.ui.lib.starpilot_state import starpilot_state` @@ -1270,7 +1270,7 @@ emit closeSubSubSubPanel(); // Back from Level 4 → Level 3 **Longitudinal Panel Structure** (17 sub-panels, ~80 controls): ``` -FROGPILOT LONGITUDINAL LAYOUT (top level - MANAGE buttons) +STARPILOT LONGITUDINAL LAYOUT (top level - MANAGE buttons) ├── Advanced Longitudinal Tuning → StarPilotAdvancedLongLayout │ └── 8 value controls ├── Conditional Experimental Mode → StarPilotConditionalExpLayout @@ -1741,7 +1741,7 @@ KM_TO_MILE = 0.621371 | Rainbow Path | Toggle | | | | Random Events | Toggle | | | | Random Themes | TOGGLE+TOGGLE | - | Includes "Include Holiday Themes" | -| Startup Alert | BUTTON | STOCK, FROGPILOT, CUSTOM, CLEAR | | +| Startup Alert | BUTTON | STOCK, STARPILOT, CUSTOM, CLEAR | | | Download Status | LABEL | - | Shows download progress | **Custom Themes Sub-Panel** (7 theme types, each with DELETE/DOWNLOAD/SELECT): @@ -1973,7 +1973,7 @@ Acura, Audi, Buick, Cadillac, Chevrolet, Chrysler, CUPRA, Dodge, Ford, Genesis, | Debug Mode | Toggle | | | Flash Panda | BUTTON | FLASH | | Force Drive State | BUTTONS | OFFROAD / ONROAD / OFF | -| Pair to "The Pond" | BUTTON | PAIR/UNPAIR | +| Galaxy | BUTTON | PAIR/UNPAIR | | Report a Bug | BUTTON | REPORT | | Reset Toggles to Default | BUTTON | RESET | | Reset Toggles to Stock | BUTTON | RESET | @@ -2613,9 +2613,9 @@ ensures that if the car state changes (e.g. from a CarParams update), the UI ref **Data sources parsed:** 1. `CarParamsPersistent` — Car fingerprint, lateral tuning, capabilities -2. `FrogPilotCarParamsPersistent` — canUsePedal, canUseSDSU, openpilotLongitudinalControlDisabled +2. `StarPilotCarParamsPersistent` — canUsePedal, canUseSDSU, openpilotLongitudinalControlDisabled 3. `LiveTorqueParameters` — hasAutoTune (useParams) -4. `FrogPilotToggles` — JSON blob with supplementary toggles +4. `StarPilotToggles` — JSON blob with supplementary toggles **Update throttling:** 2.0s minimum interval between heavy param parsing diff --git a/cereal/custom.capnp b/cereal/custom.capnp index bb88c2c6..3b6cde3e 100644 --- a/cereal/custom.capnp +++ b/cereal/custom.capnp @@ -12,7 +12,7 @@ using Car = import "car.capnp"; # DO rename the structs # DON'T change the identifier (e.g. @0x81c2f05a394cf4af) -struct FrogPilotCarControl @0x81c2f05a394cf4af { +struct StarPilotCarControl @0x81c2f05a394cf4af { hudControl @0 :HUDControl; struct HUDControl { @@ -51,7 +51,7 @@ struct FrogPilotCarControl @0x81c2f05a394cf4af { } } -struct FrogPilotCarParams @0xaedffd8f31e7b55d { +struct StarPilotCarParams @0xaedffd8f31e7b55d { alternativeExperience @0 :Int16; canUsePedal @1 :Bool; canUseSDSU @2 :Bool; @@ -65,7 +65,7 @@ struct FrogPilotCarParams @0xaedffd8f31e7b55d { } } -struct FrogPilotCarState @0xf35cc4560bbf6ec2 { +struct StarPilotCarState @0xf35cc4560bbf6ec2 { accelPressed @0 :Bool; alwaysOnLateralEnabled @1 :Bool; brakeLights @2 :Bool; @@ -84,12 +84,12 @@ struct FrogPilotCarState @0xf35cc4560bbf6ec2 { gasStack @15 :Bool; # Compatibility with older StarPilot payloads } -struct FrogPilotDeviceState @0xda96579883444c35 { +struct StarPilotDeviceState @0xda96579883444c35 { freeSpace @0 :Int16; usedSpace @1 :Int16; } -struct FrogPilotModelDataV2 @0x80ae746ee2596b11 { +struct StarPilotModelDataV2 @0x80ae746ee2596b11 { turnDirection @0 :TurnDirection; enum TurnDirection { @@ -99,7 +99,7 @@ struct FrogPilotModelDataV2 @0x80ae746ee2596b11 { } } -struct FrogPilotOnroadEvent @0xa5cd762cd951a455 { +struct StarPilotOnroadEvent @0xa5cd762cd951a455 { name @0 :EventName; enable @1 :Bool; @@ -148,7 +148,7 @@ struct FrogPilotOnroadEvent @0xa5cd762cd951a455 { } } -struct FrogPilotPlan @0xf98d843bfd7004a3 { +struct StarPilotPlan @0xf98d843bfd7004a3 { accelerationJerk @0 :Float32; cscControllingSpeed @1 :Bool; cscSpeed @2 :Float32; @@ -159,8 +159,8 @@ struct FrogPilotPlan @0xf98d843bfd7004a3 { experimentalMode @7 :Bool; forcingStop @8 :Bool; forcingStopLength @9 :Float32; - frogpilotEvents @10 :List(FrogPilotOnroadEvent); - frogpilotToggles @11 :Text; + starpilotEvents @10 :List(StarPilotOnroadEvent); + starpilotToggles @11 :Text; increasedStoppedDistance @12 :Float32; lateralCheck @13 :Bool; laneWidthLeft @14 :Float32; @@ -188,7 +188,7 @@ struct FrogPilotPlan @0xf98d843bfd7004a3 { trackingLead @36 :Bool; } -struct FrogPilotRadarState @0xb86e6369214c01c8 { +struct StarPilotRadarState @0xb86e6369214c01c8 { leadLeft @0 :LeadData; leadRight @1 :LeadData; @@ -213,7 +213,7 @@ struct FrogPilotRadarState @0xb86e6369214c01c8 { } } -struct FrogPilotSelfdriveState @0xf416ec09499d9d19 { +struct StarPilotSelfdriveState @0xf416ec09499d9d19 { alertText1 @0 :Text; alertText2 @1 :Text; alertStatus @2 :AlertStatus; @@ -225,7 +225,7 @@ struct FrogPilotSelfdriveState @0xf416ec09499d9d19 { normal @0; userPrompt @1; critical @2; - frogpilot @3; + starpilot @3; } enum AlertSize { diff --git a/cereal/libcereal.a b/cereal/libcereal.a index e2d9b89c..3e40537b 100644 Binary files a/cereal/libcereal.a and b/cereal/libcereal.a differ diff --git a/cereal/libsocketmaster.a b/cereal/libsocketmaster.a index b24ff987..0c1e2da2 100644 Binary files a/cereal/libsocketmaster.a and b/cereal/libsocketmaster.a differ diff --git a/cereal/log.capnp b/cereal/log.capnp index 6cd6599a..917cd972 100644 --- a/cereal/log.capnp +++ b/cereal/log.capnp @@ -2625,15 +2625,15 @@ struct Event { # DO change the name of the field and struct # DON'T change the ID (e.g. @107) # DON'T change which struct it points to - frogpilotCarControl @107 :Custom.FrogPilotCarControl; - frogpilotCarParams @108 :Custom.FrogPilotCarParams; - frogpilotCarState @109 :Custom.FrogPilotCarState; - frogpilotDeviceState @110 :Custom.FrogPilotDeviceState; - frogpilotModelV2 @111 :Custom.FrogPilotModelDataV2; - frogpilotOnroadEvents @112 :List(Custom.FrogPilotOnroadEvent); - frogpilotPlan @113 :Custom.FrogPilotPlan; - frogpilotRadarState @114 :Custom.FrogPilotRadarState; - frogpilotSelfdriveState @115 :Custom.FrogPilotSelfdriveState; + starpilotCarControl @107 :Custom.StarPilotCarControl; + starpilotCarParams @108 :Custom.StarPilotCarParams; + starpilotCarState @109 :Custom.StarPilotCarState; + starpilotDeviceState @110 :Custom.StarPilotDeviceState; + starpilotModelV2 @111 :Custom.StarPilotModelDataV2; + starpilotOnroadEvents @112 :List(Custom.StarPilotOnroadEvent); + starpilotPlan @113 :Custom.StarPilotPlan; + starpilotRadarState @114 :Custom.StarPilotRadarState; + starpilotSelfdriveState @115 :Custom.StarPilotSelfdriveState; customReserved9 @116 :Custom.CustomReserved9; customReserved10 @136 :Custom.CustomReserved10; customReserved11 @137 :Custom.CustomReserved11; diff --git a/cereal/messaging/__init__.py b/cereal/messaging/__init__.py index 1bc9b4d8..17bde5bd 100644 --- a/cereal/messaging/__init__.py +++ b/cereal/messaging/__init__.py @@ -197,7 +197,7 @@ class SubMaster: self.data[s] = getattr(data.as_reader(), s) self.freq_tracker[s] = FrequencyTracker(SERVICE_LIST[s].frequency, self.update_freq, s == poll) - # FrogPilot variables + # StarPilot variables self.addr = addr self.poll = poll @@ -252,7 +252,7 @@ class SubMaster: def all_checks(self, service_list: Optional[List[str]] = None) -> bool: return self.all_alive(service_list) and self.all_freq_ok(service_list) and self.all_valid(service_list) - # FrogPilot variables + # StarPilot variables def extend(self, new_services: List[str]): return SubMaster( self.services + new_services, @@ -286,7 +286,7 @@ class PubMaster: def all_readers_updated(self, s: str) -> bool: return self.sock[s].all_readers_updated() # type: ignore - # FrogPilot variables + # StarPilot variables def extend(self, new_services: List[str]): for service in new_services: if service not in self.sock: diff --git a/cereal/messaging/bridge b/cereal/messaging/bridge index 04a2d198..a6ec07d4 100755 Binary files a/cereal/messaging/bridge and b/cereal/messaging/bridge differ diff --git a/cereal/services.h b/cereal/services.h index 2d4e4cd0..be2b4a11 100644 --- a/cereal/services.h +++ b/cereal/services.h @@ -83,15 +83,15 @@ static std::map services = { { "customReservedRawData0", {"customReservedRawData0", true, 0.000000, -1, 256000}}, { "customReservedRawData1", {"customReservedRawData1", true, 0.000000, -1, 256000}}, { "customReservedRawData2", {"customReservedRawData2", true, 0.000000, -1, 256000}}, - { "frogpilotCarControl", {"frogpilotCarControl", true, 100.000000, 10, 256000}}, - { "frogpilotCarParams", {"frogpilotCarParams", true, 0.020000, 1, 256000}}, - { "frogpilotCarState", {"frogpilotCarState", true, 100.000000, 10, 256000}}, - { "frogpilotDeviceState", {"frogpilotDeviceState", true, 2.000000, 1, 256000}}, - { "frogpilotModelV2", {"frogpilotModelV2", true, 20.000000, -1, 256000}}, - { "frogpilotOnroadEvents", {"frogpilotOnroadEvents", true, 1.000000, 1, 256000}}, - { "frogpilotPlan", {"frogpilotPlan", true, 20.000000, 10, 256000}}, - { "frogpilotRadarState", {"frogpilotRadarState", true, 20.000000, 5, 256000}}, - { "frogpilotSelfdriveState", {"frogpilotSelfdriveState", true, 100.000000, 10, 256000}}, + { "starpilotCarControl", {"starpilotCarControl", true, 100.000000, 10, 256000}}, + { "starpilotCarParams", {"starpilotCarParams", true, 0.020000, 1, 256000}}, + { "starpilotCarState", {"starpilotCarState", true, 100.000000, 10, 256000}}, + { "starpilotDeviceState", {"starpilotDeviceState", true, 2.000000, 1, 256000}}, + { "starpilotModelV2", {"starpilotModelV2", true, 20.000000, -1, 256000}}, + { "starpilotOnroadEvents", {"starpilotOnroadEvents", true, 1.000000, 1, 256000}}, + { "starpilotPlan", {"starpilotPlan", true, 20.000000, 10, 256000}}, + { "starpilotRadarState", {"starpilotRadarState", true, 20.000000, 5, 256000}}, + { "starpilotSelfdriveState", {"starpilotSelfdriveState", true, 100.000000, 10, 256000}}, { "mapdExtendedOut", {"mapdExtendedOut", true, 1.000000, 1, 2097152}}, { "mapdIn", {"mapdIn", true, 1.000000, 1, 2097152}}, { "mapdOut", {"mapdOut", true, 20.000000, 20, 2097152}}, diff --git a/cereal/services.py b/cereal/services.py index b5a0a1e5..0583f24d 100755 --- a/cereal/services.py +++ b/cereal/services.py @@ -103,16 +103,16 @@ _services: dict[str, tuple] = { "customReservedRawData1": (True, 0.), "customReservedRawData2": (True, 0.), - # FrogPilot variables - "frogpilotCarControl": (True, 100., 10), - "frogpilotCarParams": (True, 0.02, 1), - "frogpilotCarState": (True, 100., 10), - "frogpilotDeviceState": (True, 2., 1), - "frogpilotModelV2": (True, 20.), - "frogpilotOnroadEvents": (True, 1., 1), - "frogpilotPlan": (True, 20., 10), - "frogpilotRadarState": (True, 20., 5), - "frogpilotSelfdriveState": (True, 100., 10), + # StarPilot variables + "starpilotCarControl": (True, 100., 10), + "starpilotCarParams": (True, 0.02, 1), + "starpilotCarState": (True, 100., 10), + "starpilotDeviceState": (True, 2., 1), + "starpilotModelV2": (True, 20.), + "starpilotOnroadEvents": (True, 1., 1), + "starpilotPlan": (True, 20., 10), + "starpilotRadarState": (True, 20., 5), + "starpilotSelfdriveState": (True, 100., 10), "mapdExtendedOut": (True, 1., 1, QueueSize.MEDIUM), "mapdIn": (True, 1., 1, QueueSize.MEDIUM), "mapdOut": (True, 20., 20, QueueSize.MEDIUM), diff --git a/common/api.py b/common/api.py index c9e89a16..f2e5e61b 100644 --- a/common/api.py +++ b/common/api.py @@ -5,7 +5,7 @@ from datetime import datetime, timedelta, UTC from openpilot.system.hardware.hw import Paths from openpilot.system.version import get_version -from openpilot.frogpilot.common.frogpilot_utilities import use_konik_server +from openpilot.starpilot.common.starpilot_utilities import use_konik_server API_HOST = os.getenv('API_HOST', f"https://api.{'konik.ai' if use_konik_server() else 'commadotai.com'}") diff --git a/common/clutil.cc b/common/clutil.cc index 2c919dd8..d6272021 100644 --- a/common/clutil.cc +++ b/common/clutil.cc @@ -70,7 +70,7 @@ std::string resolve_program_path(const char *path) { } // Recover from build-path-embedded absolute paths like "/work/selfdrive/...". - for (const char *marker : {"/selfdrive/", "/frogpilot/", "/common/"}) { + for (const char *marker : {"/selfdrive/", "/starpilot/", "/common/"}) { if (const size_t idx = resolved_path.find(marker); idx != std::string::npos) { const std::string candidate = basedir + "/" + resolved_path.substr(idx + 1); if (util::file_exists(candidate)) { diff --git a/common/constants.py b/common/constants.py index 55c23f75..b3cd45df 100644 --- a/common/constants.py +++ b/common/constants.py @@ -19,7 +19,7 @@ class CV: # Mass LB_TO_KG = 0.453592 - # FrogPilot variables + # StarPilot variables METER_TO_FOOT = 3.28084 FOOT_TO_METER = 1. / METER_TO_FOOT CM_TO_INCH = 1. / 2.54 diff --git a/common/libcommon.a b/common/libcommon.a index bff03042..c2ed2af5 100644 Binary files a/common/libcommon.a and b/common/libcommon.a differ diff --git a/common/params.cc b/common/params.cc index 5ce983f0..4ee1df69 100644 --- a/common/params.cc +++ b/common/params.cc @@ -94,7 +94,7 @@ private: Params::Params(const std::string &path, bool memory) { params_prefix = "/" + util::getenv("OPENPILOT_PREFIX", "d"); - // FrogPilot variables + // StarPilot variables std::string params_folder; if (memory) { params_folder = Path::shm_path() + "/params"; @@ -179,7 +179,7 @@ int Params::remove(const std::string &key) { FileLock file_lock(params_path + "/.lock"); int result = unlink(getParamPath(key).c_str()); - // FrogPilot variables + // StarPilot variables if (!cache_path.empty()) { unlink((cache_path + key).c_str()); } @@ -231,7 +231,7 @@ void Params::clearAll(ParamKeyFlag key_flag) { if (it == keys.end() || (it->second.flags & key_flag)) { unlink(getParamPath(de->d_name).c_str()); - // FrogPilot variables + // StarPilot variables if (!cache_path.empty()) { unlink((cache_path + de->d_name).c_str()); } @@ -261,7 +261,7 @@ void Params::asyncWriteThread() { } } -// FrogPilot variables +// StarPilot variables int Params::getTuningLevel(const std::string &key) { return keys[key].tuning_level; } diff --git a/common/params.h b/common/params.h index f3505683..79b2fca5 100644 --- a/common/params.h +++ b/common/params.h @@ -36,7 +36,7 @@ struct ParamKeyAttributes { ParamKeyType type; std::optional default_value = std::nullopt; - // FrogPilot variables + // StarPilot variables std::optional stock_value = std::nullopt; int tuning_level = 0; @@ -83,7 +83,7 @@ public: putNonBlocking(key, val ? "1" : "0"); } - // FrogPilot variables + // StarPilot variables int getInt(const std::string &key, bool block = false) { std::string value = get(key, block); return value.empty() ? 0 : std::stoi(value); @@ -122,6 +122,6 @@ private: std::future future; SafeQueue> queue; - // FrogPilot variables + // StarPilot variables std::string cache_path; }; diff --git a/common/params_keys.h b/common/params_keys.h index a0875512..c1358878 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -135,7 +135,7 @@ inline static std::unordered_map keys = { {"UptimeOnroad", {PERSISTENT, FLOAT, "0.0"}}, {"Version", {PERSISTENT, STRING}}, - // FrogPilot variables + // StarPilot variables {"AccelerationPath", {PERSISTENT, BOOL, "1", "0", 2}}, {"AccelerationProfile", {PERSISTENT, INT, "2", "0", 0}}, {"AdjacentLeadsUI", {PERSISTENT, BOOL, "1", "0", 3}}, @@ -261,12 +261,12 @@ inline static std::unordered_map keys = { {"ForceStops", {PERSISTENT, BOOL, "0", "0", 2}}, {"ForceTorqueController", {PERSISTENT, BOOL, "0", "0", 3}}, {"FPSCounter", {PERSISTENT, BOOL, "1", "0", 3}}, - {"FrogPilotApiToken", {PERSISTENT | DONT_LOG, STRING, "", "", 0}}, - {"FrogPilotCarParams", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BYTES, "", ""}}, - {"FrogPilotCarParamsPersistent", {PERSISTENT, BYTES, "", ""}}, - {"FrogPilotDongleId", {PERSISTENT | DONT_LOG, STRING, "", "", 0}}, - {"FrogPilotStats", {PERSISTENT | DONT_LOG, JSON, "{}", "{}"}}, - {"FrogPilotTogglesUpdated", {CLEAR_ON_MANAGER_START, BOOL, "0", "0"}}, + {"StarPilotApiToken", {PERSISTENT | DONT_LOG, STRING, "", "", 0}}, + {"StarPilotCarParams", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BYTES, "", ""}}, + {"StarPilotCarParamsPersistent", {PERSISTENT, BYTES, "", ""}}, + {"StarPilotDongleId", {PERSISTENT | DONT_LOG, STRING, "", "", 0}}, + {"StarPilotStats", {PERSISTENT | DONT_LOG, JSON, "{}", "{}"}}, + {"StarPilotTogglesUpdated", {CLEAR_ON_MANAGER_START, BOOL, "0", "0"}}, {"FrogsGoMoosTweak", {PERSISTENT, BOOL, "1", "0", 2}}, {"GoatScream", {PERSISTENT, BOOL, "0", "0", 1}}, {"GreenLightAlert", {PERSISTENT, BOOL, "0", "0", 0}}, diff --git a/common/params_pyx.cpp b/common/params_pyx.cpp index f9639f6d..de8240f1 100644 --- a/common/params_pyx.cpp +++ b/common/params_pyx.cpp @@ -6097,7 +6097,7 @@ static int __pyx_pf_6common_10params_pyx_6Params___cinit__(struct __pyx_obj_6com * def __cinit__(self, d="", *, memory=False, return_defaults=False): * cdef string path = d.encode() # <<<<<<<<<<<<<< * - * # FrogPilot variables + * # StarPilot variables */ __pyx_t_2 = __pyx_v_d; __Pyx_INCREF(__pyx_t_2); @@ -6115,7 +6115,7 @@ static int __pyx_pf_6common_10params_pyx_6Params___cinit__(struct __pyx_obj_6com /* "common/params_pyx.pyx":119 * - * # FrogPilot variables + * # StarPilot variables * cdef bool c_memory = memory # <<<<<<<<<<<<<< * * with nogil: @@ -6182,7 +6182,7 @@ static int __pyx_pf_6common_10params_pyx_6Params___cinit__(struct __pyx_obj_6com * self.p = new c_Params(path, c_memory) * self.d = d # <<<<<<<<<<<<<< * - * # FrogPilot variables + * # StarPilot variables */ __pyx_t_1 = __pyx_v_d; __Pyx_INCREF(__pyx_t_1); @@ -6195,7 +6195,7 @@ static int __pyx_pf_6common_10params_pyx_6Params___cinit__(struct __pyx_obj_6com /* "common/params_pyx.pyx":126 * - * # FrogPilot variables + * # StarPilot variables * self.m = memory # <<<<<<<<<<<<<< * * self.return_defaults = return_defaults or memory @@ -10127,7 +10127,7 @@ static PyObject *__pyx_pf_6common_10params_pyx_6Params_38cpp2python(struct __pyx * cdef ParamKeyType t = self.p.getKeyType(k) * return self._cpp2python(t, value, None, key) # <<<<<<<<<<<<<< * - * # FrogPilot variables + * # StarPilot variables */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = ((PyObject *)__pyx_v_self); @@ -10170,7 +10170,7 @@ static PyObject *__pyx_pf_6common_10params_pyx_6Params_38cpp2python(struct __pyx /* "common/params_pyx.pyx":245 * - * # FrogPilot variables + * # StarPilot variables * def get_key_flag(self, key): # <<<<<<<<<<<<<< * return self.p.getKeyFlag(self.check_key(key)) * @@ -10274,7 +10274,7 @@ static PyObject *__pyx_pf_6common_10params_pyx_6Params_40get_key_flag(struct __p __Pyx_RefNannySetupContext("get_key_flag", 0); /* "common/params_pyx.pyx":246 - * # FrogPilot variables + * # StarPilot variables * def get_key_flag(self, key): * return self.p.getKeyFlag(self.check_key(key)) # <<<<<<<<<<<<<< * @@ -10301,7 +10301,7 @@ static PyObject *__pyx_pf_6common_10params_pyx_6Params_40get_key_flag(struct __p /* "common/params_pyx.pyx":245 * - * # FrogPilot variables + * # StarPilot variables * def get_key_flag(self, key): # <<<<<<<<<<<<<< * return self.p.getKeyFlag(self.check_key(key)) * @@ -12347,7 +12347,7 @@ __Pyx_RefNannySetupContext("PyInit_params_pyx", 0); /* "common/params_pyx.pyx":245 * - * # FrogPilot variables + * # StarPilot variables * def get_key_flag(self, key): # <<<<<<<<<<<<<< * return self.p.getKeyFlag(self.check_key(key)) * diff --git a/common/params_pyx.pyx b/common/params_pyx.pyx index 3cd8d9b1..9767b61e 100644 --- a/common/params_pyx.pyx +++ b/common/params_pyx.pyx @@ -20,7 +20,7 @@ cdef extern from "common/params.h": CLEAR_ON_IGNITION_ON ALL - # FrogPilot variables + # StarPilot variables DONT_LOG cpdef enum ParamKeyType: @@ -48,7 +48,7 @@ cdef extern from "common/params.h": void clearAll(ParamKeyFlag) vector[string] allKeys() - # FrogPilot variables + # StarPilot variables ParamKeyFlag getKeyFlag(string) nogil optional[string] getStockValue(string) nogil @@ -108,21 +108,21 @@ cdef class Params: cdef c_Params* p cdef str d - # FrogPilot variables + # StarPilot variables cdef bool m cdef bool return_defaults def __cinit__(self, d="", *, memory=False, return_defaults=False): cdef string path = d.encode() - # FrogPilot variables + # StarPilot variables cdef bool c_memory = memory with nogil: self.p = new c_Params(path, c_memory) self.d = d - # FrogPilot variables + # StarPilot variables self.m = memory self.return_defaults = return_defaults or memory @@ -241,7 +241,7 @@ cdef class Params: cdef ParamKeyType t = self.p.getKeyType(k) return self._cpp2python(t, value, None, key) - # FrogPilot variables + # StarPilot variables def get_key_flag(self, key): return self.p.getKeyFlag(self.check_key(key)) diff --git a/common/params_pyx.so b/common/params_pyx.so index 1f550526..8d4769c4 100755 Binary files a/common/params_pyx.so and b/common/params_pyx.so differ diff --git a/common/util.h b/common/util.h index dfb12009..ed627524 100644 --- a/common/util.h +++ b/common/util.h @@ -37,7 +37,7 @@ const double MS_TO_MPH = MS_TO_KPH * KM_TO_MILE; const double METER_TO_MILE = KM_TO_MILE / 1000.0; const double METER_TO_FOOT = 3.28084; -// FrogPilot variables +// StarPilot variables const double FOOT_TO_METER = 1. / METER_TO_FOOT; const double CM_TO_INCH = 1. / 2.54; const double INCH_TO_CM = 1. / CM_TO_INCH; diff --git a/docs/how-to/laptop-device-build.md b/docs/how-to/laptop-device-build.md index 234223a8..8948d9b1 100644 --- a/docs/how-to/laptop-device-build.md +++ b/docs/how-to/laptop-device-build.md @@ -17,7 +17,7 @@ For the full StarPilot branch workflow, including host-native shorthand tools su Fast path (no physical comma): ```bash -cd /path/to/frogpilot +cd /path/to/starpilot scripts/laptop_device_build.sh setup ``` @@ -30,7 +30,7 @@ scripts/starpilot_build_flow.sh laptop-setup ### Option A: no physical comma (AGNOS-based) ```bash -cd /path/to/frogpilot +cd /path/to/starpilot scripts/laptop_device_build.sh build-image scripts/laptop_device_build.sh setup-sysroot-agnos ``` @@ -38,7 +38,7 @@ scripts/laptop_device_build.sh setup-sysroot-agnos ### Option B: copy sysroot from a comma device ```bash -cd /path/to/frogpilot +cd /path/to/starpilot scripts/laptop_device_build.sh setup-sysroot comma 22 scripts/laptop_device_build.sh build-image ``` @@ -52,7 +52,7 @@ scripts/laptop_device_build.sh setup comma 22 ## Build device-compatible artifacts ```bash -cd /path/to/frogpilot +cd /path/to/starpilot scripts/laptop_device_build.sh build ``` diff --git a/frogpilot/controls/frogpilot_planner.py b/frogpilot/controls/frogpilot_planner.py deleted file mode 100644 index 312c212d..00000000 --- a/frogpilot/controls/frogpilot_planner.py +++ /dev/null @@ -1,203 +0,0 @@ -#!/usr/bin/env python3 -import json - -import cereal.messaging as messaging - -from openpilot.common.constants import CV -from openpilot.common.filter_simple import FirstOrderFilter -from openpilot.common.gps import get_gps_location_service -from openpilot.common.params import Params -from openpilot.common.realtime import DT_MDL -from openpilot.selfdrive.car.cruise import V_CRUISE_MAX, V_CRUISE_UNSET -from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import A_CHANGE_COST, DANGER_ZONE_COST, J_EGO_COST, STOP_DISTANCE - -from openpilot.frogpilot.common.frogpilot_utilities import calculate_lane_width, calculate_road_curvature -from openpilot.frogpilot.common.frogpilot_variables import CRUISING_SPEED, MINIMUM_LATERAL_ACCELERATION, PLANNER_TIME, THRESHOLD -from openpilot.frogpilot.controls.lib.conditional_experimental_mode import ConditionalExperimentalMode -from openpilot.frogpilot.controls.lib.frogpilot_acceleration import FrogPilotAcceleration -from openpilot.frogpilot.controls.lib.frogpilot_events import FrogPilotEvents -from openpilot.frogpilot.controls.lib.frogpilot_following import FrogPilotFollowing -from openpilot.frogpilot.controls.lib.frogpilot_vcruise import FrogPilotVCruise -from openpilot.frogpilot.controls.lib.weather_checker import WeatherChecker - - -class FrogPilotPlanner: - def __init__(self, error_log, ThemeManager): - self.params = Params(return_defaults=True) - self.params_memory = Params(memory=True) - - self.frogpilot_acceleration = FrogPilotAcceleration(self) - self.frogpilot_cem = ConditionalExperimentalMode(self) - self.frogpilot_events = FrogPilotEvents(self, error_log, ThemeManager) - self.frogpilot_following = FrogPilotFollowing(self) - self.frogpilot_vcruise = FrogPilotVCruise(self) - self.frogpilot_weather = WeatherChecker(self) - - self.driving_in_curve = False - self.gps_valid = False - self.lateral_check = False - self.model_stopped = False - self.road_curvature_detected = False - self.tracking_lead = False - - self.lane_width_left = 0 - self.lane_width_right = 0 - self.lateral_acceleration = 0 - self.model_length = 0 - self.road_curvature = 0 - self.time_to_curve = 0 - self.v_cruise = 0 - - self.gps_position = None - - self.gps_location_service = get_gps_location_service(self.params) - - self.tracking_lead_filter = FirstOrderFilter(0, 0.5, DT_MDL) - - def shutdown(self): - self.frogpilot_vcruise.slc.executor.shutdown(wait=False, cancel_futures=True) - self.frogpilot_weather.executor.shutdown(wait=False, cancel_futures=True) - - def update(self, now, time_validated, sm, frogpilot_toggles): - self.lead_one = sm["radarState"].leadOne - - controls_enabled = sm["selfdriveState"].enabled - - v_cruise_kph = min(sm["carState"].vCruise, V_CRUISE_MAX) - if 0 < v_cruise_kph < V_CRUISE_UNSET and frogpilot_toggles.set_speed_offset > 0: - v_cruise_kph += frogpilot_toggles.set_speed_offset - v_cruise = v_cruise_kph * CV.KPH_TO_MS - v_ego = max(sm["carState"].vEgo, 0) - - if controls_enabled: - self.frogpilot_acceleration.update(v_ego, sm, frogpilot_toggles) - else: - self.frogpilot_acceleration.max_accel = 0 - self.frogpilot_acceleration.min_accel = 0 - - if controls_enabled and frogpilot_toggles.conditional_experimental_mode: - self.frogpilot_cem.update(v_ego, sm, frogpilot_toggles) - else: - self.frogpilot_cem.curve_detected = False - self.frogpilot_cem.stop_sign_and_light(v_ego, sm, PLANNER_TIME - 2) - - self.driving_in_curve = abs(self.lateral_acceleration) >= MINIMUM_LATERAL_ACCELERATION - - self.frogpilot_events.update(controls_enabled, v_cruise, sm, frogpilot_toggles) - - self.frogpilot_following.update(controls_enabled, v_ego, sm, frogpilot_toggles) - - gps_location = sm[self.gps_location_service] - self.gps_position = { - "latitude": gps_location.latitude, - "longitude": gps_location.longitude, - "bearing": gps_location.bearingDeg, - } - self.gps_valid = self.gps_position["latitude"] != 0 or self.gps_position["longitude"] != 0 - self.params_memory.put("LastGPSPosition", json.dumps(self.gps_position)) - - if v_ego >= frogpilot_toggles.minimum_lane_change_speed: - self.lane_width_left = calculate_lane_width(sm["modelV2"].laneLines[0], sm["modelV2"].laneLines[1], sm["modelV2"].roadEdges[0]) - self.lane_width_right = calculate_lane_width(sm["modelV2"].laneLines[3], sm["modelV2"].laneLines[2], sm["modelV2"].roadEdges[1]) - else: - self.lane_width_left = 0 - self.lane_width_right = 0 - - self.lateral_acceleration = v_ego**2 * sm["controlsState"].curvature - - self.lateral_check = v_ego >= frogpilot_toggles.pause_lateral_below_speed - self.lateral_check |= not (sm["carState"].leftBlinker or sm["carState"].rightBlinker) and frogpilot_toggles.pause_lateral_below_signal - self.lateral_check |= sm["carState"].standstill - self.lateral_check &= not sm["frogpilotCarState"].pauseLateral - - self.model_length = sm["modelV2"].position.x[-1] - - self.model_stopped = self.model_length < CRUISING_SPEED * PLANNER_TIME - self.model_stopped |= self.frogpilot_vcruise.forcing_stop - - self.road_curvature, self.time_to_curve = calculate_road_curvature(sm["modelV2"]) - - self.road_curvature_detected = (1 / abs(self.road_curvature))**0.5 < v_ego > CRUISING_SPEED and not (sm["carState"].leftBlinker or sm["carState"].rightBlinker) - - if not sm["carState"].standstill: - self.tracking_lead = self.update_lead_status(frogpilot_toggles.stop_distance) - - self.v_cruise = self.frogpilot_vcruise.update(controls_enabled, now, time_validated, v_cruise, v_ego, sm, frogpilot_toggles) - - if self.gps_valid and time_validated and frogpilot_toggles.weather_presets: - self.frogpilot_weather.update_weather(now, frogpilot_toggles) - else: - self.frogpilot_weather.weather_id = 0 - - def update_lead_status(self, stop_distance=STOP_DISTANCE): - following_lead = self.lead_one.status - following_lead &= self.lead_one.dRel < self.model_length + max(float(stop_distance), 4.0) - - self.tracking_lead_filter.update(following_lead) - return self.tracking_lead_filter.x >= THRESHOLD - - def publish(self, theme_updated, sm, pm, frogpilot_toggles): - frogpilot_plan_send = messaging.new_message("frogpilotPlan") - frogpilot_plan_send.valid = sm.all_checks(service_list=["carState", "controlsState", "selfdriveState", "radarState"]) - frogpilotPlan = frogpilot_plan_send.frogpilotPlan - - frogpilotPlan.accelerationJerk = float(A_CHANGE_COST * self.frogpilot_following.acceleration_jerk) - frogpilotPlan.dangerFactor = float(self.frogpilot_following.danger_factor) - frogpilotPlan.dangerJerk = float(DANGER_ZONE_COST * self.frogpilot_following.danger_jerk) - frogpilotPlan.speedJerk = float(J_EGO_COST * self.frogpilot_following.speed_jerk) - frogpilotPlan.tFollow = float(self.frogpilot_following.t_follow) - - frogpilotPlan.cscControllingSpeed = self.frogpilot_vcruise.csc_controlling_speed - frogpilotPlan.cscSpeed = float(self.frogpilot_vcruise.csc_target) - frogpilotPlan.cscTraining = self.frogpilot_vcruise.csc.enable_training - - frogpilotPlan.desiredFollowDistance = int(self.frogpilot_following.desired_follow_distance) - frogpilotPlan.disableThrottle = self.frogpilot_following.disable_throttle - frogpilotPlan.trackingLead = self.tracking_lead - - frogpilotPlan.experimentalMode = self.frogpilot_cem.experimental_mode or self.frogpilot_vcruise.slc.experimental_mode - - frogpilotPlan.forcingStop = self.frogpilot_vcruise.forcing_stop - frogpilotPlan.forcingStopLength = self.frogpilot_vcruise.tracked_model_length - - frogpilotPlan.frogpilotEvents = self.frogpilot_events.events.to_msg() - - frogpilotPlan.frogpilotToggles = json.dumps(vars(frogpilot_toggles)) - - if sm["frogpilotCarState"].trafficModeEnabled: - frogpilotPlan.increasedStoppedDistance = 0 - else: - frogpilotPlan.increasedStoppedDistance = frogpilot_toggles.increase_stopped_distance - if self.frogpilot_weather.weather_id != 0: - frogpilotPlan.increasedStoppedDistance += self.frogpilot_weather.increase_stopped_distance - - frogpilotPlan.laneWidthLeft = self.lane_width_left - frogpilotPlan.laneWidthRight = self.lane_width_right - - frogpilotPlan.lateralCheck = self.lateral_check - - frogpilotPlan.maxAcceleration = float(self.frogpilot_acceleration.max_accel) - frogpilotPlan.minAcceleration = float(self.frogpilot_acceleration.min_accel) - - frogpilotPlan.redLight = self.frogpilot_cem.stop_light_detected - - frogpilotPlan.roadCurvature = self.road_curvature - - frogpilotPlan.slcMapSpeedLimit = self.frogpilot_vcruise.slc.map_speed_limit - frogpilotPlan.slcMapboxSpeedLimit = self.frogpilot_vcruise.slc.mapbox_limit - frogpilotPlan.slcNextSpeedLimit = self.frogpilot_vcruise.slc.next_speed_limit - frogpilotPlan.slcOverriddenSpeed = self.frogpilot_vcruise.slc.overridden_speed - frogpilotPlan.slcSpeedLimit = self.frogpilot_vcruise.slc_target - frogpilotPlan.slcSpeedLimitOffset = self.frogpilot_vcruise.slc_offset - frogpilotPlan.slcSpeedLimitSource = self.frogpilot_vcruise.slc.source - frogpilotPlan.speedLimitChanged = self.frogpilot_vcruise.slc.speed_limit_changed_timer > DT_MDL - frogpilotPlan.unconfirmedSlcSpeedLimit = self.frogpilot_vcruise.slc.unconfirmed_speed_limit - - frogpilotPlan.themeUpdated = theme_updated - - frogpilotPlan.vCruise = float(self.v_cruise) - - frogpilotPlan.weatherDaytime = self.frogpilot_weather.is_daytime - frogpilotPlan.weatherId = self.frogpilot_weather.weather_id - - pm.send("frogpilotPlan", frogpilot_plan_send) diff --git a/frogpilot/system/frogpilot_tracking.py b/frogpilot/system/frogpilot_tracking.py deleted file mode 100644 index 5ba913e3..00000000 --- a/frogpilot/system/frogpilot_tracking.py +++ /dev/null @@ -1,175 +0,0 @@ -#!/usr/bin/env python3 -from openpilot.common.constants import CV -from openpilot.common.realtime import DT_MDL -from openpilot.selfdrive.car.cruise import V_CRUISE_MAX -from openpilot.selfdrive.selfdrived.events import FROGPILOT_EVENT_NAME -from openpilot.selfdrive.selfdrived.selfdrived import LONGITUDINAL_PERSONALITY_MAP, State -from openpilot.selfdrive.selfdrived.state import ACTIVE_STATES -from openpilot.selfdrive.ui.soundd import FrogPilotAudibleAlert - -from openpilot.frogpilot.common.frogpilot_utilities import clean_model_name -from openpilot.frogpilot.controls.lib.frogpilot_events import RANDOM_EVENT_END, RANDOM_EVENT_START -from openpilot.frogpilot.controls.lib.weather_checker import WEATHER_CATEGORIES - -class FrogPilotTracking: - def __init__(self, frogpilot_planner, frogpilot_toggles): - self.params = frogpilot_planner.params - - self.frogpilot_events = frogpilot_planner.frogpilot_events - self.frogpilot_weather = frogpilot_planner.frogpilot_weather - - self.frogpilot_stats = self.params.get("FrogPilotStats") - self.frogpilot_stats.pop("CurrentMonthsKilometers", None) - self.frogpilot_stats.pop("ResetStats", None) - - self.drive_added = False - self.previously_enabled = False - - self.distance_since_override = 0 - self.tracked_time = 0 - - self.previous_random_events = set() - - self.previous_alert = None - self.previous_sound = FrogPilotAudibleAlert.none - self.previous_state = State.disabled - - self.model_name = clean_model_name(frogpilot_toggles.model_name) - - def update(self, now, time_validated, sm, frogpilot_toggles): - v_cruise = min(sm["carState"].vCruiseCluster, V_CRUISE_MAX) * CV.KPH_TO_MS - v_ego = max(sm["carState"].vEgo, 0) - - distance_driven = v_ego * DT_MDL - self.previously_enabled |= sm["selfdriveState"].enabled or sm["frogpilotCarState"].alwaysOnLateralEnabled - self.tracked_time += DT_MDL - - if sm["selfdriveState"].alertType not in (self.previous_alert, ""): - alert_name = sm["selfdriveState"].alertType.split('/')[0] - total_events = self.frogpilot_stats.get("TotalEvents", {}) - total_events[alert_name] = total_events.get(alert_name, 0) + 1 - self.frogpilot_stats["TotalEvents"] = total_events - self.previous_alert = sm["selfdriveState"].alertType - - if sm["selfdriveState"].enabled: - key = str(round(v_cruise, 2)) - total_cruise_speed_times = self.frogpilot_stats.get("CruiseSpeedTimes", {}) - total_cruise_speed_times[key] = total_cruise_speed_times.get(key, 0) + DT_MDL - self.frogpilot_stats["CruiseSpeedTimes"] = total_cruise_speed_times - - self.frogpilot_stats["CurrentMonthsMeters"] = self.frogpilot_stats.get("CurrentMonthsMeters", 0) + distance_driven - - if self.frogpilot_weather.sunrise != 0 and self.frogpilot_weather.sunset != 0: - if self.frogpilot_weather.is_daytime: - self.frogpilot_stats["DayTime"] = self.frogpilot_stats.get("DayTime", 0) + DT_MDL - else: - self.frogpilot_stats["NightTime"] = self.frogpilot_stats.get("NightTime", 0) + DT_MDL - - if sm["selfdriveState"].state != self.previous_state: - if sm["selfdriveState"].state in ACTIVE_STATES and self.previous_state not in ACTIVE_STATES: - self.frogpilot_stats["Engages"] = self.frogpilot_stats.get("Engages", 0) + 1 - if frogpilot_toggles.sound_pack == "frog": - self.frogpilot_stats["FrogChirps"] = self.frogpilot_stats.get("FrogChirps", 0) + 1 - - elif sm["selfdriveState"].state == State.disabled and self.previous_state in ACTIVE_STATES: - self.frogpilot_stats["Disengages"] = self.frogpilot_stats.get("Disengages", 0) + 1 - if frogpilot_toggles.sound_pack == "frog": - self.frogpilot_stats["FrogSqueaks"] = self.frogpilot_stats.get("FrogSqueaks", 0) + 1 - - if sm["selfdriveState"].state == State.overriding and self.previous_state != State.overriding: - self.frogpilot_stats["Overrides"] = self.frogpilot_stats.get("Overrides", 0) + 1 - - self.previous_state = sm["selfdriveState"].state - - if sm["selfdriveState"].experimentalMode: - self.frogpilot_stats["ExperimentalModeTime"] = self.frogpilot_stats.get("ExperimentalModeTime", 0) + DT_MDL - - self.frogpilot_stats["FrogPilotMeters"] = self.frogpilot_stats.get("FrogPilotMeters", 0) + distance_driven - - if sm["frogpilotSelfdriveState"].alertSound != self.previous_sound: - if sm["frogpilotSelfdriveState"].alertSound == FrogPilotAudibleAlert.goat: - self.frogpilot_stats["GoatScreams"] = self.frogpilot_stats.get("GoatScreams", 0) + 1 - - self.previous_sound = sm["frogpilotSelfdriveState"].alertSound - - self.frogpilot_stats["MaxAcceleration"] = max(self.frogpilot_events.max_acceleration, self.frogpilot_stats.get("MaxAcceleration", 0)) - - if sm["carControl"].latActive: - self.frogpilot_stats["LateralTime"] = self.frogpilot_stats.get("LateralTime", 0) + DT_MDL - if sm["carControl"].longActive: - self.frogpilot_stats["LongitudinalTime"] = self.frogpilot_stats.get("LongitudinalTime", 0) + DT_MDL - - personality_name = LONGITUDINAL_PERSONALITY_MAP.get(sm["selfdriveState"].personality, "Unknown").capitalize() - total_personality_times = self.frogpilot_stats.get("PersonalityTimes", {}) - total_personality_times[personality_name] = total_personality_times.get(personality_name, 0) + DT_MDL - self.frogpilot_stats["PersonalityTimes"] = total_personality_times - elif sm["frogpilotCarState"].alwaysOnLateralEnabled: - self.frogpilot_stats["AOLTime"] = self.frogpilot_stats.get("AOLTime", 0) + DT_MDL - - if sm["selfdriveState"].state in (State.disabled, State.overriding): - self.distance_since_override = 0 - self.frogpilot_stats["OverrideTime"] = self.frogpilot_stats.get("OverrideTime", 0) + DT_MDL - else: - self.distance_since_override += distance_driven - self.frogpilot_stats["LongestDistanceWithoutOverride"] = max(self.distance_since_override, self.frogpilot_stats.get("LongestDistanceWithoutOverride", 0)) - - current_random_events = {event for event in self.frogpilot_events.events.names if RANDOM_EVENT_START <= event <= RANDOM_EVENT_END} - if len(current_random_events) > 0: - new_events = current_random_events - self.previous_random_events - if new_events: - total_random_events = self.frogpilot_stats.get("RandomEvents", {}) - for event in new_events: - event_name = FROGPILOT_EVENT_NAME[event] - total_random_events[event_name] = total_random_events.get(event_name, 0) + 1 - self.frogpilot_stats["RandomEvents"] = total_random_events - - self.previous_random_events = current_random_events - - if sm["carState"].standstill: - self.frogpilot_stats["StandstillTime"] = self.frogpilot_stats.get("StandstillTime", 0) + DT_MDL - if self.frogpilot_events.stopped_for_light: - self.frogpilot_stats["StopLightTime"] = self.frogpilot_stats.get("StopLightTime", 0) + DT_MDL - - weather_api_calls = self.frogpilot_stats.get("WeatherAPICalls", {}) - weather_api_calls["2.5"] = weather_api_calls.get("2.5", 0) + self.frogpilot_weather.api_25_calls - weather_api_calls["3.0"] = weather_api_calls.get("3.0", 0) + self.frogpilot_weather.api_3_calls - self.frogpilot_stats["WeatherAPICalls"] = weather_api_calls - - self.frogpilot_weather.api_25_calls = 0 - self.frogpilot_weather.api_3_calls = 0 - - suffix = "unknown" - for category in WEATHER_CATEGORIES.values(): - if any(start <= self.frogpilot_weather.weather_id <= end for start, end in category["ranges"]): - suffix = category["suffix"] - break - - weather_times = self.frogpilot_stats.get("WeatherTimes", {}) - weather_times[suffix] = weather_times.get(suffix, 0) + DT_MDL - self.frogpilot_stats["WeatherTimes"] = weather_times - - if self.tracked_time >= 60 and sm["carState"].standstill and self.previously_enabled: - if time_validated: - current_month = now.month - if current_month != self.frogpilot_stats.get("Month"): - self.frogpilot_stats.update({ - "CurrentMonthsMeters": 0, - "Month": current_month - }) - - self.frogpilot_stats["FrogPilotSeconds"] = self.frogpilot_stats.get("FrogPilotSeconds", 0) + self.tracked_time - - current_model = self.model_name - total_model_times = self.frogpilot_stats.get("ModelTimes", {}) - total_model_times[current_model] = total_model_times.get(current_model, 0) + self.tracked_time - self.frogpilot_stats["ModelTimes"] = total_model_times - - self.frogpilot_stats["TrackedTime"] = self.frogpilot_stats.get("TrackedTime", 0) + self.tracked_time - - self.tracked_time = 0 - - if not self.drive_added: - self.frogpilot_stats["FrogPilotDrives"] = self.frogpilot_stats.get("FrogPilotDrives", 0) + 1 - self.drive_added = True - - self.params.put_nonblocking("FrogPilotStats", dict(sorted(self.frogpilot_stats.items()))) diff --git a/frogpilot/ui/qt/offroad/data_settings.h b/frogpilot/ui/qt/offroad/data_settings.h deleted file mode 100644 index 9b13d009..00000000 --- a/frogpilot/ui/qt/offroad/data_settings.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" - -class FrogPilotDataPanel : public FrogPilotListWidget { - Q_OBJECT - -public: - explicit FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); - -signals: - void openSubPanel(); - -private: - void updateStatsLabels(FrogPilotListWidget *labelsList); - - bool forceOpenDescriptions; - bool isMetric; - - FrogPilotSettingsWindow *parent; - - Params params; -}; diff --git a/frogpilot/ui/qt/offroad/utilities.cc b/frogpilot/ui/qt/offroad/utilities.cc deleted file mode 100644 index 126de9d6..00000000 --- a/frogpilot/ui/qt/offroad/utilities.cc +++ /dev/null @@ -1,369 +0,0 @@ -#include "frogpilot/ui/qt/offroad/utilities.h" - -FrogPilotUtilitiesPanel::FrogPilotUtilitiesPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { - networkManager = new QNetworkAccessManager(this); - pairingPollTimer = new QTimer(this); - - forceOpenDescriptions = forceOpen; - - ParamControl *debugModeToggle = new ParamControl("DebugMode", tr("Debug Mode"), tr("Use all of FrogPilot's developer metrics on your next drive to diagnose issues and improve bug reports."), ""); - if (forceOpenDescriptions) { - debugModeToggle->showDescription(); - } - addItem(debugModeToggle); - - ButtonControl *flashPandaButton = new ButtonControl(tr("Flash Panda"), tr("FLASH"), tr("Flash the latest, official firmware onto your Panda device to restore core functionality, fix bugs, or ensure you have the most up-to-date software.")); - QObject::connect(flashPandaButton, &ButtonControl::clicked, [parent, flashPandaButton, this]() { - if (ConfirmationDialog::confirm(tr("Are you sure you want to flash the Panda firmware?"), tr("Flash"), this)) { - std::thread([parent, flashPandaButton, this]() { - parent->keepScreenOn = true; - - flashPandaButton->setEnabled(false); - flashPandaButton->setValue(tr("Flashing...")); - - params_memory.putBool("FlashPanda", true); - while (params_memory.getBool("FlashPanda")) { - util::sleep_for(UI_FREQ); - } - - flashPandaButton->setValue(tr("Flashed!")); - - util::sleep_for(2500); - - flashPandaButton->setValue(tr("Rebooting...")); - - util::sleep_for(2500); - - Hardware::reboot(); - }).detach(); - } - }); - if (forceOpenDescriptions) { - flashPandaButton->showDescription(); - } - addItem(flashPandaButton); - - FrogPilotButtonsControl *forceStartedButton = new FrogPilotButtonsControl(tr("Force Drive State"), tr("Force openpilot to be offroad or onroad."), "", {tr("OFFROAD"), tr("ONROAD"), tr("OFF")}, true); - QObject::connect(forceStartedButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { - if (id == 0) { - params.putBool("ForceOffroad", true); - params.putBool("ForceOnroad", false); - - updateFrogPilotToggles(); - } else if (id == 1) { - params.put("CarParams", params.get("CarParamsPersistent")); - params.put("FrogPilotCarParams", params.get("FrogPilotCarParamsPersistent")); - - params.putBool("ForceOffroad", false); - params.putBool("ForceOnroad", true); - - updateFrogPilotToggles(); - } else if (id == 2) { - params.putBool("ForceOffroad", false); - params.putBool("ForceOnroad", false); - - updateFrogPilotToggles(); - } - }); - forceStartedButton->setCheckedButton(2); - if (forceOpenDescriptions) { - forceStartedButton->showDescription(); - } - addItem(forceStartedButton); - - bool paired = params.getBool("PondPaired"); - pondButton = new ButtonControl( - tr("Pair to \"The Pond\""), - paired ? tr("UNPAIR") : tr("PAIR"), - tr("Pair this device with your frogpilot.com account to remotely manage settings from anywhere.") - ); - QObject::connect(pondButton, &ButtonControl::clicked, [this]() { - if (!frogpilotUIState()->frogpilot_scene.online) { - ConfirmationDialog::alert(tr("Please connect to the internet first!"), this); - return; - } - - bool isPaired = params.getBool("PondPaired"); - - if (isPaired && !ConfirmationDialog::confirm(tr("Are you sure you want to unpair from \"The Pond\"?"), tr("Unpair"), this)) { - return; - } - - pondButton->setEnabled(false); - pondButton->setValue(isPaired ? tr("Unpairing...") : tr("Requesting code...")); - - QJsonObject payload; - payload["api_token"] = QString::fromStdString(params.get("FrogPilotApiToken")); - payload["device"] = QString::fromStdString(Hardware::get_name()).trimmed().remove(QChar('\0')); - payload["frogpilot_dongle_id"] = QString::fromStdString(params.get("FrogPilotDongleId")); - - QString buildMetadataStr = QString::fromStdString(params.get("BuildMetadata")); - if (!buildMetadataStr.isEmpty()) { - QJsonDocument bmDoc = QJsonDocument::fromJson(buildMetadataStr.toUtf8()); - if (!bmDoc.isNull()) { - payload["build_metadata"] = bmDoc.object(); - } - } - - QNetworkRequest request(QUrl(QString("https://www.frogpilot.com/api/pond/pair/") + (isPaired ? "unpair" : "request"))); - request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); - request.setRawHeader("User-Agent", "frogpilot-api/1.0"); - - QByteArray postData = QJsonDocument(payload).toJson(QJsonDocument::Compact); - - QNetworkReply *reply = networkManager->post(request, postData); - QObject::connect(reply, &QNetworkReply::finished, [this, reply, isPaired, payload]() { - QByteArray responseBody = reply->readAll(); - - reply->deleteLater(); - - pondButton->setEnabled(true); - pondButton->setValue(""); - - if (reply->error() != QNetworkReply::NoError) { - QString errorDetail; - QString serverError = QJsonDocument::fromJson(responseBody).object().value("error").toString(); - - int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); - if (statusCode == 401) { - errorDetail = tr("Authentication failed. Please restart your device."); - } else if (statusCode == 403) { - errorDetail = serverError.contains("build", Qt::CaseInsensitive) - ? tr("Unofficial or modified build detected.") - : tr("Access denied: %1").arg(serverError); - } else if (statusCode == 429) { - errorDetail = tr("Too many attempts. Please wait and try again."); - } else if (statusCode == 503) { - errorDetail = tr("Server is temporarily unavailable. Please try again later."); - } else if (statusCode > 0) { - errorDetail = tr("Server error (%1): %2").arg(statusCode).arg(serverError.isEmpty() ? tr("Unknown error") : serverError); - } else { - errorDetail = tr("Network error: %1").arg(reply->errorString()); - } - - if (isPaired) { - pondButton->setValue(tr("Failed to unpair")); - - QTimer::singleShot(2500, [this]() { - pondButton->setValue(""); - }); - } else { - ConfirmationDialog::alert(tr("Failed to get pairing code.\n\n%1").arg(errorDetail), this); - } - return; - } - - if (isPaired) { - params.putBool("PondPaired", false); - - pondButton->setText(tr("PAIR")); - pondButton->setValue(tr("Unpaired!")); - - QTimer::singleShot(2500, [this]() { - pondButton->setValue(""); - }); - return; - } - - QString code = QJsonDocument::fromJson(responseBody).object().value("code").toString(); - if (code.isEmpty()) { - ConfirmationDialog::alert(tr("Failed to get pairing code. Please try again."), this); - return; - } - - pondButton->setValue(tr("Code: %1").arg(code)); - - ConfirmationDialog::alert(tr("Go to \"frogpilot.com/the_pond\" and enter this code: %1").arg(code), this); - - QString dongleId = payload["frogpilot_dongle_id"].toString(); - QString apiToken = payload["api_token"].toString(); - - pairingPollTimer->disconnect(); - - int pollCount = 0; - QObject::connect(pairingPollTimer, &QTimer::timeout, [this, code, dongleId, apiToken, pollCount]() mutable { - if (++pollCount > 200) { - pairingPollTimer->stop(); - - pondButton->setValue(tr("Code expired")); - - QTimer::singleShot(2500, [this]() { - pondButton->setValue(""); - }); - return; - } - - QNetworkRequest statusRequest{QUrl(QString("https://www.frogpilot.com/api/pond/pair/status?code=%1&dongle_id=%2&api_token=%3").arg(code, dongleId, apiToken))}; - statusRequest.setRawHeader("User-Agent", "frogpilot-api/1.0"); - - QNetworkReply *statusReply = networkManager->get(statusRequest); - QObject::connect(statusReply, &QNetworkReply::finished, [this, statusReply]() { - statusReply->deleteLater(); - if (statusReply->error() != QNetworkReply::NoError) { - return; - } - - QString status = QJsonDocument::fromJson(statusReply->readAll()).object().value("status").toString(); - if (status == "paired") { - pairingPollTimer->stop(); - - params.putBool("PondPaired", true); - - pondButton->setText(tr("UNPAIR")); - pondButton->setValue(tr("Paired!")); - - ConfirmationDialog::alert(tr("Device successfully paired to \"The Pond\"!"), this); - - QTimer::singleShot(2500, [this]() { - pondButton->setValue(""); - }); - } else if (status == "expired") { - pairingPollTimer->stop(); - - pondButton->setValue(tr("Code expired")); - - QTimer::singleShot(2500, [this]() { - pondButton->setValue(""); - }); - } - }); - }); - - pairingPollTimer->start(3000); - }); - }); - if (forceOpenDescriptions) { - pondButton->showDescription(); - } - addItem(pondButton); - pondButton->setVisible(true); - - ButtonControl *reportIssueButton = new ButtonControl(tr("Report a Bug or an Issue"), tr("REPORT"), tr("Send a bug report so we can help fix the problem!")); - QObject::connect(reportIssueButton, &ButtonControl::clicked, [this]() { - if (!frogpilotUIState()->frogpilot_scene.online) { - ConfirmationDialog::alert(tr("Please connect to the internet before sending a report!"), this); - return; - } - - QStringList report_messages = { - tr("Acceleration feels harsh or jerky"), - tr("An alert was unclear and I'm not sure what it meant"), - tr("Braking is too sudden or uncomfortable"), - tr("I'm not sure if this is normal or a bug:"), - tr("My steering wheel buttons aren't working"), - tr("openpilot disengages when I don't expect it"), - tr("openpilot feels sluggish or slow to respond"), - tr("Something else (please describe)") - }; - - if (QFile::exists("/data/error_logs/error.txt")) { - report_messages.prepend(tr("I saw an alert that said \"openpilot crashed\"")); - } - - QString selected_issue = MultiOptionDialog::getSelection(tr("What's going on?"), report_messages, "", this); - if (selected_issue.isEmpty()) { - return; - } - - if (selected_issue.contains("crashed") || selected_issue.contains("not sure") || selected_issue.contains("Something else")) { - QString extra_input = InputDialog::getText(tr("Please describe what's happening"), this, tr("Send Report"), false, 10, "", 300).trimmed(); - if (extra_input.isEmpty()) { - return; - } - selected_issue += " — " + extra_input; - } - - QString discord_user = InputDialog::getText(tr("What's your Discord username?"), this, tr("Send Report"), false, -1, QString::fromStdString(params.get("DiscordUsername"))).trimmed(); - - QJsonObject reportData; - reportData["DiscordUser"] = discord_user; - reportData["Issue"] = selected_issue; - - params.putNonBlocking("DiscordUsername", discord_user.toStdString()); - params_memory.put("IssueReported", QJsonDocument(reportData).toJson(QJsonDocument::Compact).toStdString()); - - ConfirmationDialog::alert(tr("Report Sent! Thanks for letting us know!"), this); - }); - if (forceOpenDescriptions) { - reportIssueButton->showDescription(); - } - addItem(reportIssueButton); - reportIssueButton->setVisible(true); - - ButtonControl *resetTogglesButton = new ButtonControl(tr("Reset Toggles to Default"), tr("RESET"), tr("Reset all toggles to their default values.")); - QObject::connect(resetTogglesButton, &ButtonControl::clicked, [parent, resetTogglesButton, this]() { - if (ConfirmationDialog::confirm(tr("Are you sure you want to reset all toggles to their default values?"), tr("Reset"), this)) { - std::thread([parent, resetTogglesButton, this]() { - parent->keepScreenOn = true; - - resetTogglesButton->setEnabled(false); - resetTogglesButton->setValue(tr("Resetting...")); - - std::vector all_keys = params.allKeys(); - for (const std::string &key : all_keys) { - if (excluded_keys.count(key)) { - continue; - } - std::optional default_value = params.getKeyDefaultValue(key); - if (default_value.has_value()) { - params.put(key, default_value.value()); - } - } - - updateFrogPilotToggles(); - - resetTogglesButton->setValue(tr("Reset!")); - - util::sleep_for(2500); - - resetTogglesButton->setValue(""); - }).detach(); - } - }); - if (forceOpenDescriptions) { - resetTogglesButton->showDescription(); - } - addItem(resetTogglesButton); - - ButtonControl *resetTogglesButtonStock = new ButtonControl(tr("Reset Toggles to Stock openpilot"), tr("RESET"), tr("Reset all toggles to match stock openpilot.")); - QObject::connect(resetTogglesButtonStock, &ButtonControl::clicked, [parent, resetTogglesButtonStock, this]() { - if (ConfirmationDialog::confirm(tr("Are you sure you want to reset all toggles to match stock openpilot?"), tr("Reset"), this)) { - std::thread([parent, resetTogglesButtonStock, this]() { - parent->keepScreenOn = true; - - resetTogglesButtonStock->setEnabled(false); - resetTogglesButtonStock->setValue(tr("Resetting...")); - - std::vector all_keys = params.allKeys(); - for (const std::string &key : all_keys) { - if (excluded_keys.count(key)) { - continue; - } - std::optional stock_value = params.getStockValue(key); - if (stock_value.has_value()) { - params.put(key, stock_value.value()); - } - } - - updateFrogPilotToggles(); - - resetTogglesButtonStock->setValue(tr("Reset!")); - - util::sleep_for(2500); - - resetTogglesButtonStock->setValue(""); - }).detach(); - } - }); - if (forceOpenDescriptions) { - resetTogglesButtonStock->showDescription(); - } - addItem(resetTogglesButtonStock); -} - -void FrogPilotUtilitiesPanel::showEvent(QShowEvent *event) { - FrogPilotListWidget::showEvent(event); - - bool isPaired = params.getBool("PondPaired"); - pondButton->setText(isPaired ? tr("UNPAIR") : tr("PAIR")); -} diff --git a/frogpilot/ui/qt/offroad/utilities.h b/frogpilot/ui/qt/offroad/utilities.h deleted file mode 100644 index 646ecd14..00000000 --- a/frogpilot/ui/qt/offroad/utilities.h +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once - -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" - -class FrogPilotUtilitiesPanel : public FrogPilotListWidget { - Q_OBJECT - -public: - explicit FrogPilotUtilitiesPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); - -protected: - void showEvent(QShowEvent *event) override; - -private: - bool forceOpenDescriptions; - - ButtonControl *pondButton; - - FrogPilotSettingsWindow *parent; - - Params params; - Params params_memory{"", true}; - - QNetworkAccessManager *networkManager; - - QTimer *pairingPollTimer; - - std::set excluded_keys = { - "AvailableModels", "AvailableModelNames", "FrogPilotStats", - "GithubSshKeys", "GithubUsername", "MapBoxRequests", - "ModelDrivesAndScores", "OverpassRequests", "SpeedLimits", - "SpeedLimitsFiltered", "UpdaterAvailableBranches", - }; -}; diff --git a/launch_chffrplus.sh b/launch_chffrplus.sh index 1cda1786..81f91610 100755 --- a/launch_chffrplus.sh +++ b/launch_chffrplus.sh @@ -30,7 +30,7 @@ function agnos_init { sudo chgrp gpu /dev/adsprpc-smd /dev/ion /dev/kgsl-3d0 sudo chmod 660 /dev/adsprpc-smd /dev/ion /dev/kgsl-3d0 - # FrogPilot variables + # StarPilot variables sudo chmod 0777 /cache # Check if AGNOS update is required @@ -85,7 +85,7 @@ function launch { # handle pythonpath ln -sfn $(pwd) /data/pythonpath export BASEDIR="$DIR" - export PYTHONPATH="$DIR/frogpilot/third_party:$PWD" + export PYTHONPATH="$DIR/starpilot/third_party:$PWD" # hardware specific init if [ -f /AGNOS ]; then diff --git a/launch_env.sh b/launch_env.sh index e00044f6..e14348c7 100755 --- a/launch_env.sh +++ b/launch_env.sh @@ -26,7 +26,7 @@ fi export STAGING_ROOT="/data/safe_staging" -# FrogPilot variables (only available after StarPilot is installed to /data/openpilot) -if [ -x /data/openpilot/frogpilot/system/environment_variables ]; then - eval "$(/data/openpilot/frogpilot/system/environment_variables)" +# StarPilot variables (only available after StarPilot is installed to /data/openpilot) +if [ -x /data/openpilot/starpilot/system/environment_variables ]; then + eval "$(/data/openpilot/starpilot/system/environment_variables)" fi diff --git a/opendbc_repo/opendbc/car/body/carcontroller.py b/opendbc_repo/opendbc/car/body/carcontroller.py index bcdf10ae..40b0f064 100644 --- a/opendbc_repo/opendbc/car/body/carcontroller.py +++ b/opendbc_repo/opendbc/car/body/carcontroller.py @@ -34,7 +34,7 @@ class CarController(CarControllerBase): torque -= deadband return torque - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): torque_l = 0 torque_r = 0 diff --git a/opendbc_repo/opendbc/car/body/carstate.py b/opendbc_repo/opendbc/car/body/carstate.py index d6912a2c..bf8c5e0d 100644 --- a/opendbc_repo/opendbc/car/body/carstate.py +++ b/opendbc_repo/opendbc/car/body/carstate.py @@ -6,7 +6,7 @@ from opendbc.car.body.values import DBC class CarState(CarStateBase): - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.main] ret = structs.CarState() @@ -29,8 +29,8 @@ class CarState(CarStateBase): ret.cruiseState.enabled = True ret.cruiseState.available = True - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret diff --git a/opendbc_repo/opendbc/car/car_helpers.py b/opendbc_repo/opendbc/car/car_helpers.py index f2be02dc..91041e1c 100644 --- a/opendbc_repo/opendbc/car/car_helpers.py +++ b/opendbc_repo/opendbc/car/car_helpers.py @@ -11,15 +11,15 @@ from opendbc.car.structs import CarParams, CarParamsT from opendbc.car.fingerprints import eliminate_incompatible_cars, all_legacy_fingerprint_cars from opendbc.car.fw_versions import ObdCallback, get_fw_versions_ordered, get_present_ecus, match_fw_to_car from opendbc.car.mock.values import CAR as MOCK -from opendbc.car.toyota.values import ToyotaFrogPilotFlags +from opendbc.car.toyota.values import ToyotaStarPilotFlags from opendbc.car.values import BRANDS from opendbc.car.vin import get_vin, is_valid_vin, VIN_UNKNOWN from openpilot.common.params import Params FRAME_FINGERPRINT = 100 # 1s -# FrogPilot variables -FrogPilotCarParams = custom.FrogPilotCarParams +# StarPilot variables +StarPilotCarParams = custom.StarPilotCarParams def load_interfaces(brand_names): @@ -212,15 +212,15 @@ def fingerprint(can_recv: CanRecvCallable, can_send: CanSendCallable, set_obd_mu def get_car(can_recv: CanRecvCallable, can_send: CanSendCallable, set_obd_multiplexing: ObdCallback, alpha_long_allowed: bool, - is_release: bool, params: Params, num_pandas: int = 1, cached_params: CarParamsT | None = None, frogpilot_toggles: SimpleNamespace = None): + is_release: bool, params: Params, num_pandas: int = 1, cached_params: CarParamsT | None = None, starpilot_toggles: SimpleNamespace = None): candidate, fingerprints, vin, car_fw, source, exact_match = fingerprint(can_recv, can_send, set_obd_multiplexing, num_pandas, cached_params) candidate = _normalize_gm_bolt_candidate(candidate, fingerprints) candidate = _normalize_forced_candidate(candidate) fingerprinted_candidate = candidate - if candidate is None or frogpilot_toggles.force_fingerprint: - if frogpilot_toggles.force_fingerprint: - forced_candidate = _normalize_forced_candidate(frogpilot_toggles.car_model) + if candidate is None or starpilot_toggles.force_fingerprint: + if starpilot_toggles.force_fingerprint: + forced_candidate = _normalize_forced_candidate(starpilot_toggles.car_model) candidate = forced_candidate if candidate not in interfaces and fingerprinted_candidate in interfaces: carlog.error({ @@ -236,7 +236,7 @@ def get_car(can_recv: CanRecvCallable, can_send: CanSendCallable, set_obd_multip params.put_nonblocking("CarMake", candidate.split('_')[0].title()) params.put_nonblocking("CarModel", str(candidate)) - if frogpilot_toggles.block_user: + if starpilot_toggles.block_user: candidate = "MOCK" # Legacy branch migration guard: normalize stale platform names from any source @@ -251,20 +251,20 @@ def get_car(can_recv: CanRecvCallable, can_send: CanSendCallable, set_obd_multip candidate = fingerprinted_candidate CarInterface = interfaces[candidate] - CP: CarParams = CarInterface.get_params(candidate, fingerprints, car_fw, alpha_long_allowed, is_release, docs=False, frogpilot_toggles=frogpilot_toggles) + CP: CarParams = CarInterface.get_params(candidate, fingerprints, car_fw, alpha_long_allowed, is_release, docs=False, starpilot_toggles=starpilot_toggles) CP.carVin = vin CP.carFw = car_fw CP.fingerprintSource = source CP.fuzzyFingerprint = not exact_match - # FrogPilot variables - FPCP: FrogPilotCarParams = CarInterface.get_frogpilot_params(candidate, fingerprints, car_fw, CP, frogpilot_toggles) + # StarPilot variables + FPCP: StarPilotCarParams = CarInterface.get_starpilot_params(candidate, fingerprints, car_fw, CP, starpilot_toggles) - if CP.brand == "toyota" and FPCP.flags & ToyotaFrogPilotFlags.SMART_DSU.value: + if CP.brand == "toyota" and FPCP.flags & ToyotaStarPilotFlags.SMART_DSU.value: CP.minEnableSpeed = -1 CP.openpilotLongitudinalControl = True - if not CP.alphaLongitudinalAvailable and frogpilot_toggles.disable_openpilot_long: + if not CP.alphaLongitudinalAvailable and starpilot_toggles.disable_openpilot_long: CP.openpilotLongitudinalControl = False FPCP.openpilotLongitudinalControlDisabled = True diff --git a/opendbc_repo/opendbc/car/chrysler/carcontroller.py b/opendbc_repo/opendbc/car/chrysler/carcontroller.py index 3078124a..a616daf9 100644 --- a/opendbc_repo/opendbc/car/chrysler/carcontroller.py +++ b/opendbc_repo/opendbc/car/chrysler/carcontroller.py @@ -19,7 +19,7 @@ class CarController(CarControllerBase): self.packer = CANPacker(dbc_names[Bus.pt]) self.params = CarControllerParams(CP) - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): can_sends = [] lkas_active = CC.latActive and self.lkas_control_bit_prev diff --git a/opendbc_repo/opendbc/car/chrysler/carstate.py b/opendbc_repo/opendbc/car/chrysler/carstate.py index 86cc6a93..60e1ca07 100644 --- a/opendbc_repo/opendbc/car/chrysler/carstate.py +++ b/opendbc_repo/opendbc/car/chrysler/carstate.py @@ -1,7 +1,7 @@ from cereal import custom from opendbc.can import CANDefine, CANParser from opendbc.car import Bus, create_button_events, structs -from opendbc.car.chrysler.values import DBC, STEER_THRESHOLD, RAM_CARS, ChryslerFrogPilotFlags +from opendbc.car.chrysler.values import DBC, STEER_THRESHOLD, RAM_CARS, ChryslerStarPilotFlags from opendbc.car.common.conversions import Conversions as CV from opendbc.car.interfaces import CarStateBase @@ -26,12 +26,12 @@ class CarState(CarStateBase): self.distance_button = 0 # RealFast variables - self.button_message = "CRUISE_BUTTONS_ALT" if FPCP.flags & ChryslerFrogPilotFlags.RAM_HD_ALT_BUTTONS else "CRUISE_BUTTONS" + self.button_message = "CRUISE_BUTTONS_ALT" if FPCP.flags & ChryslerStarPilotFlags.RAM_HD_ALT_BUTTONS else "CRUISE_BUTTONS" - # FrogPilot variables + # StarPilot variables self.lkas_button = 0 - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.pt] cp_cam = can_parsers[Bus.cam] @@ -104,8 +104,8 @@ class CarState(CarStateBase): buttonEvents = create_button_events(self.distance_button, prev_distance_button, {1: ButtonType.gapAdjustCruise}) - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() self.prev_lkas_button = self.lkas_button if self.CP.carFingerprint in RAM_CARS: diff --git a/opendbc_repo/opendbc/car/chrysler/values.py b/opendbc_repo/opendbc/car/chrysler/values.py index 1d919631..6342e43d 100644 --- a/opendbc_repo/opendbc/car/chrysler/values.py +++ b/opendbc_repo/opendbc/car/chrysler/values.py @@ -19,8 +19,8 @@ class ChryslerFlags(IntFlag): HIGHER_MIN_STEERING_SPEED = 1 -# FrogPilot variables -class ChryslerFrogPilotFlags(IntFlag): +# StarPilot variables +class ChryslerStarPilotFlags(IntFlag): RAM_HD_ALT_BUTTONS = 1 diff --git a/opendbc_repo/opendbc/car/ford/carcontroller.py b/opendbc_repo/opendbc/car/ford/carcontroller.py index 2e7d91ec..3e8eb562 100644 --- a/opendbc_repo/opendbc/car/ford/carcontroller.py +++ b/opendbc_repo/opendbc/car/ford/carcontroller.py @@ -75,7 +75,7 @@ class CarController(CarControllerBase): self.lead_distance_bars_last = None self.distance_bar_frame = 0 - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): can_sends = [] actuators = CC.actuators diff --git a/opendbc_repo/opendbc/car/ford/carstate.py b/opendbc_repo/opendbc/car/ford/carstate.py index 98081b76..714ea56c 100644 --- a/opendbc_repo/opendbc/car/ford/carstate.py +++ b/opendbc_repo/opendbc/car/ford/carstate.py @@ -21,7 +21,7 @@ class CarState(CarStateBase): self.distance_button = 0 self.lc_button = 0 - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.pt] cp_cam = can_parsers[Bus.cam] @@ -114,8 +114,8 @@ class CarState(CarStateBase): *create_button_events(self.lc_button, prev_lc_button, {1: ButtonType.lkas}), ] - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret diff --git a/opendbc_repo/opendbc/car/gm/carcontroller.py b/opendbc_repo/opendbc/car/gm/carcontroller.py index 6fa99105..a6f74224 100644 --- a/opendbc_repo/opendbc/car/gm/carcontroller.py +++ b/opendbc_repo/opendbc/car/gm/carcontroller.py @@ -8,7 +8,7 @@ from opendbc.car.common.conversions import Conversions as CV from opendbc.car.gm.values import ASCM_INT, CAR, CC_ONLY_CAR, CC_REGEN_PADDLE_CAR, DBC, EV_CAR, SDGM_CAR, AccState, CanBus, CarControllerParams, CruiseButtons, GMFlags from opendbc.car.interfaces import CarControllerBase from openpilot.common.params import Params, UnknownKeyName -from openpilot.frogpilot.common.testing_grounds import testing_ground +from openpilot.starpilot.common.testing_grounds import testing_ground VisualAlert = structs.CarControl.HUDControl.VisualAlert NetworkLocation = structs.CarParams.NetworkLocation @@ -213,7 +213,7 @@ class CarController(CarControllerBase): self.malibu_cancel_phase = phase self.malibu_button_phase = phase - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators self.aego = CS.out.aEgo accel = actuators.accel @@ -366,11 +366,11 @@ class CarController(CarControllerBase): self.regen_min_on_frames = 0 self.regen_min_off_frames = 0 elif near_stop and stopping and not CC.cruiseControl.resume: - stop_accel = getattr(frogpilot_toggles, "stopAccel", self.CP.stopAccel) + stop_accel = getattr(starpilot_toggles, "stopAccel", self.CP.stopAccel) self.apply_gas = self.params.INACTIVE_REGEN self.apply_brake = int(min(-100 * stop_accel, self.params.MAX_BRAKE)) else: - long_pitch_enabled = bool(getattr(frogpilot_toggles, "long_pitch", True)) + long_pitch_enabled = bool(getattr(starpilot_toggles, "long_pitch", True)) pedal_long_path = bool(self.CP.enableGasInterceptorDEPRECATED and (self.CP.flags & GMFlags.PEDAL_LONG.value)) long_pitch_for_powertrain = long_pitch_enabled and not pedal_long_path @@ -453,7 +453,7 @@ class CarController(CarControllerBase): if self.CP.flags & GMFlags.CC_LONG.value: if CC.longActive and CS.out.cruiseState.enabled and CS.out.vEgo > self.CP.minEnableSpeed: # Using extend instead of append since the message is only sent intermittently - can_sends.extend(gmcan.create_gm_cc_spam_command(self.packer_pt, self, CS, actuators, frogpilot_toggles)) + can_sends.extend(gmcan.create_gm_cc_spam_command(self.packer_pt, self, CS, actuators, starpilot_toggles)) elif (CS.out.cruiseState.enabled and CC.enabled and self.frame % 52 == 0 and CS.cruise_buttons == CruiseButtons.UNPRESS and CS.out.gasPressed and CS.out.cruiseState.speed < CS.out.vEgo < hud_v_cruise): if self.CP.carFingerprint == CAR.CHEVROLET_MALIBU_HYBRID_CC: @@ -479,8 +479,8 @@ class CarController(CarControllerBase): resume = actuators.longControlState != LongCtrlState.starting or CC.cruiseControl.resume at_full_stop = at_full_stop and not resume - # FrogPilot variables - if CC.cruiseControl.resume and CS.pcm_acc_status == AccState.STANDSTILL and frogpilot_toggles.volt_sng: + # StarPilot variables + if CC.cruiseControl.resume and CS.pcm_acc_status == AccState.STANDSTILL and starpilot_toggles.volt_sng: acc_engaged = False else: acc_engaged = CC.enabled diff --git a/opendbc_repo/opendbc/car/gm/carstate.py b/opendbc_repo/opendbc/car/gm/carstate.py index 47bea4ed..ac4d9e2b 100644 --- a/opendbc_repo/opendbc/car/gm/carstate.py +++ b/opendbc_repo/opendbc/car/gm/carstate.py @@ -78,7 +78,7 @@ class CarState(CarStateBase): return True return False - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: pt_cp = can_parsers[Bus.pt] cam_cp = can_parsers[Bus.cam] loopback_cp = can_parsers[Bus.loopback] @@ -133,7 +133,7 @@ class CarState(CarStateBase): pt_cp.vl["EBCMWheelSpdRear"]["RLWheelSpd"], pt_cp.vl["EBCMWheelSpdRear"]["RRWheelSpd"], ) - ret.vEgoCluster = ret.vEgo * getattr(frogpilot_toggles, "cluster_offset", 1.0) + ret.vEgoCluster = ret.vEgo * getattr(starpilot_toggles, "cluster_offset", 1.0) # standstill=True if ECM allows engagement with brake. ret.standstill = abs(pt_cp.vl["EBCMWheelSpdRear"]["RLWheelSpd"]) <= STANDSTILL_THRESHOLD and \ abs(pt_cp.vl["EBCMWheelSpdRear"]["RRWheelSpd"]) <= STANDSTILL_THRESHOLD @@ -283,7 +283,7 @@ class CarState(CarStateBase): remap_cancel_to_distance = bool(self.CP.alternativeExperience & ALTERNATIVE_EXPERIENCE.GM_REMAP_CANCEL_TO_DISTANCE) if not remap_cancel_to_distance: remap_cancel_to_distance = ( - getattr(frogpilot_toggles, "remap_cancel_to_distance", False) and + getattr(starpilot_toggles, "remap_cancel_to_distance", False) and self.CP.openpilotLongitudinalControl and bool(self.CP.flags & GMFlags.PEDAL_LONG.value) and self.CP.carFingerprint in (BOLT_GEN1_CANCEL_PERSONALITY_CARS | {CAR.CHEVROLET_MALIBU_HYBRID_CC}) @@ -342,7 +342,7 @@ class CarState(CarStateBase): if ret.vEgo < self.CP.minSteerSpeed: ret.lowSpeedAlert = True - fp_ret = custom.FrogPilotCarState.new_message() + fp_ret = custom.StarPilotCarState.new_message() if bolt_cancel_personality and self.cruise_buttons == CruiseButtons.CANCEL: # Feed long-press personality logic as if distance is held while CANCEL is held. fp_ret.distancePressed = True diff --git a/opendbc_repo/opendbc/car/gm/fingerprints.py b/opendbc_repo/opendbc/car/gm/fingerprints.py index 5cfc7c88..78539f0a 100644 --- a/opendbc_repo/opendbc/car/gm/fingerprints.py +++ b/opendbc_repo/opendbc/car/gm/fingerprints.py @@ -191,7 +191,7 @@ FINGERPRINTS = { { 190: 6, 193: 8, 197: 8, 199: 4, 201: 8, 208: 8, 209: 7, 211: 2, 241: 6, 249: 8, 288: 5, 298: 8, 304: 1, 309: 8, 313: 8, 320: 3, 322: 7, 328: 1, 352: 5, 353: 3, 381: 6, 384: 4, 386: 8, 388: 8, 393: 7, 398: 8, 407: 7, 413: 8, 417: 7, 419: 1, 422: 4, 426: 7, 431: 8, 442: 8, 451: 8, 452: 8, 453: 6, 454: 8, 455: 7, 462: 4, 463: 3, 479: 3, 481: 7, 485: 8, 487: 8, 489: 8, 495: 4, 497: 8, 499: 3, 500: 6, 501: 8, 503: 1, 508: 8, 510: 8, 532: 6, 554: 3, 560: 8, 562: 8, 563: 5, 564: 5, 567: 5, 647: 3, 707: 8, 717: 5, 723: 2, 753: 5, 761: 7, 800: 6, 840: 5, 842: 5, 844: 8, 866: 4, 869: 4, 872: 1, 961: 8, 967: 4, 969: 8, 977: 8, 979: 8, 985: 5, 1001: 8, 1005: 6, 1009: 8, 1011: 6, 1013: 3, 1017: 8, 1019: 2, 1020: 8, 1022: 1, 1105: 6, 1217: 8, 1221: 5, 1223: 3, 1225: 7, 1233: 8, 1243: 3, 1249: 8, 1257: 6, 1259: 8, 1261: 7, 1263: 4, 1265: 8, 1267: 1, 1280: 4, 1300: 8, 1322: 6, 1328: 4, 1417: 8, 1904: 7, 1906: 7, 1907: 7, 1912: 7, 1913: 7, 1914: 7, 1919: 7, 1920: 7 }], - # FrogPilot variables + # StarPilot variables CAR.CHEVROLET_TRAX: [ { 190: 6, 193: 8, 197: 8, 201: 8, 209: 7, 211: 2, 241: 6, 249: 8, 288: 5, 298: 8, 304: 3, 309: 8, 311: 8, 313: 8, 320: 4, 322: 7, 328: 1, 352: 5, 381: 8, 384: 4, 386: 8, 388: 8, 413: 8, 451: 8, 452: 8, 453: 6, 455: 7, 479: 3, 481: 7, 485: 8, 489: 8, 497: 8, 500: 6, 501: 8, 532: 6, 560: 8, 562: 8, 563: 5, 565: 5, 587: 8, 608: 8, 609: 6, 610: 6, 611: 6, 612: 8, 613: 8, 707: 8, 715: 8, 717: 5, 761: 7, 789: 5, 800: 6, 810: 8, 840: 5, 842: 5, 844: 8, 869: 4, 880: 6, 977: 8, 1001: 8, 1011: 6, 1017: 8, 1020: 8, 1217: 8, 1221: 5, 1233: 8, 1249: 8, 1259: 8, 1261: 7, 1263: 4, 1265: 8, 1267: 1, 1271: 8, 1280: 4, 1296: 4, 1300: 8, 1611: 8, 1930: 7 diff --git a/opendbc_repo/opendbc/car/gm/gmcan.py b/opendbc_repo/opendbc/car/gm/gmcan.py index 3faaf11d..5562f3ca 100644 --- a/opendbc_repo/opendbc/car/gm/gmcan.py +++ b/opendbc_repo/opendbc/car/gm/gmcan.py @@ -273,12 +273,12 @@ def create_lka_icon_command(bus, active, critical, steer): return CanData(0x104c006c, dat, bus) -def create_gm_cc_spam_command(packer, controller, CS, actuators, frogpilot_toggles): +def create_gm_cc_spam_command(packer, controller, CS, actuators, starpilot_toggles): accel = actuators.accel v_ego = CS.out.vEgo cruise_btn = CruiseButtons.INIT rate = 1 if abs(accel) <= 0.15 else 0.2 - ms_convert = CV.MS_TO_KPH if getattr(frogpilot_toggles, "is_metric", False) else CV.MS_TO_MPH + ms_convert = CV.MS_TO_KPH if getattr(starpilot_toggles, "is_metric", False) else CV.MS_TO_MPH speed_setpoint = int(round(CS.out.cruiseState.speed * ms_convert)) desired_setpoint = int(round((v_ego * 1.01 + 3 * accel) * ms_convert)) diff --git a/opendbc_repo/opendbc/car/gm/interface.py b/opendbc_repo/opendbc/car/gm/interface.py index 1d1dadd8..e91f359e 100755 --- a/opendbc_repo/opendbc/car/gm/interface.py +++ b/opendbc_repo/opendbc/car/gm/interface.py @@ -627,7 +627,7 @@ class CarInterface(CarInterfaceBase): if remap_cancel_to_distance or malibu_cancel_passthrough: ret.alternativeExperience |= ALTERNATIVE_EXPERIENCE.GM_REMAP_CANCEL_TO_DISTANCE - # FrogPilot variables + # StarPilot variables if candidate == CAR.CHEVROLET_TRAX: CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) diff --git a/opendbc_repo/opendbc/car/gm/values.py b/opendbc_repo/opendbc/car/gm/values.py index 9fe99601..0ba47142 100644 --- a/opendbc_repo/opendbc/car/gm/values.py +++ b/opendbc_repo/opendbc/car/gm/values.py @@ -567,5 +567,5 @@ STEER_THRESHOLD = 1.0 DBC = CAR.create_dbc_map() -# FrogPilot variables +# StarPilot variables CAMERA_ACC_CAR.update({CAR.CHEVROLET_TRAX}) diff --git a/opendbc_repo/opendbc/car/honda/carcontroller.py b/opendbc_repo/opendbc/car/honda/carcontroller.py index ff0c86eb..68f1b1b3 100644 --- a/opendbc_repo/opendbc/car/honda/carcontroller.py +++ b/opendbc_repo/opendbc/car/honda/carcontroller.py @@ -109,7 +109,7 @@ class CarController(CarControllerBase): self.brake = 0.0 self.last_torque = 0.0 - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators hud_control = CC.hudControl hud_v_cruise = hud_control.setSpeed / CS.v_cruise_factor if hud_control.speedVisible else 255 diff --git a/opendbc_repo/opendbc/car/honda/carstate.py b/opendbc_repo/opendbc/car/honda/carstate.py index cb15e794..0c2706dd 100644 --- a/opendbc_repo/opendbc/car/honda/carstate.py +++ b/opendbc_repo/opendbc/car/honda/carstate.py @@ -50,7 +50,7 @@ class CarState(CarStateBase): # However, on cars without a digital speedometer this is not always present (HRV, FIT, CRV 2016, ILX and RDX) self.dash_speed_seen = False - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.pt] cp_cam = can_parsers[Bus.cam] if self.CP.enableBsm: @@ -220,8 +220,8 @@ class CarState(CarStateBase): *create_button_events(self.cruise_setting, prev_cruise_setting, SETTINGS_BUTTONS_DICT), ] - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret diff --git a/opendbc_repo/opendbc/car/hyundai/carcontroller.py b/opendbc_repo/opendbc/car/hyundai/carcontroller.py index 06ff5950..44b19fa3 100644 --- a/opendbc_repo/opendbc/car/hyundai/carcontroller.py +++ b/opendbc_repo/opendbc/car/hyundai/carcontroller.py @@ -55,7 +55,7 @@ class CarController(CarControllerBase): self.car_fingerprint = CP.carFingerprint self.last_button_frame = 0 - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators hud_control = CC.hudControl diff --git a/opendbc_repo/opendbc/car/hyundai/carstate.py b/opendbc_repo/opendbc/car/hyundai/carstate.py index 6f8db6b7..e1dce0d6 100644 --- a/opendbc_repo/opendbc/car/hyundai/carstate.py +++ b/opendbc_repo/opendbc/car/hyundai/carstate.py @@ -70,7 +70,7 @@ class CarState(CarStateBase): # Main button also can trigger an engagement on these cars return any(btn in ENABLE_BUTTONS for btn in self.cruise_buttons) or any(self.main_buttons) - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.pt] cp_cam = can_parsers[Bus.cam] @@ -203,8 +203,8 @@ class CarState(CarStateBase): self.low_speed_alert = False ret.lowSpeedAlert = self.low_speed_alert - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret @@ -301,8 +301,8 @@ class CarState(CarStateBase): ret.blockPcmEnable = not self.recent_button_interaction() - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret diff --git a/opendbc_repo/opendbc/car/hyundai/values.py b/opendbc_repo/opendbc/car/hyundai/values.py index c29286b7..d623567b 100644 --- a/opendbc_repo/opendbc/car/hyundai/values.py +++ b/opendbc_repo/opendbc/car/hyundai/values.py @@ -68,8 +68,8 @@ class HyundaiSafetyFlags(IntFlag): ALT_LIMITS_2 = 512 -# FrogPilot variables -class HyundaiFrogPilotSafetyFlags(IntFlag): +# StarPilot variables +class HyundaiStarPilotSafetyFlags(IntFlag): HAS_LDA_BUTTON = 1024 diff --git a/opendbc_repo/opendbc/car/interfaces.py b/opendbc_repo/opendbc/car/interfaces.py index 22b85461..bfde3cb8 100644 --- a/opendbc_repo/opendbc/car/interfaces.py +++ b/opendbc_repo/opendbc/car/interfaces.py @@ -13,16 +13,16 @@ from cereal import custom from opendbc.car import DT_CTRL, apply_hysteresis, create_button_events, gen_empty_fingerprint, scale_rot_inertia, scale_tire_stiffness, STD_CARGO_KG from opendbc.car import structs from opendbc.car.can_definitions import CanData, CanRecvCallable, CanSendCallable -from opendbc.car.chrysler.values import CAR as CHRYSLER, ChryslerFrogPilotFlags +from opendbc.car.chrysler.values import CAR as CHRYSLER, ChryslerStarPilotFlags from opendbc.car.common.basedir import BASEDIR from opendbc.car.common.conversions import Conversions as CV from opendbc.car.common.simple_kalman import KF1D, get_kalman_gain from opendbc.car.gm.values import CAR as GM from opendbc.car.honda.values import CAR as HONDA, HONDA_BOSCH, HondaSafetyFlags from opendbc.car.hyundai.hyundaicanfd import CanBus -from opendbc.car.hyundai.values import CAR as HYUNDAI, CANFD_CAR, HyundaiFlags, HyundaiFrogPilotSafetyFlags +from opendbc.car.hyundai.values import CAR as HYUNDAI, CANFD_CAR, HyundaiFlags, HyundaiStarPilotSafetyFlags from opendbc.car.mock.values import CAR as MOCK -from opendbc.car.toyota.values import CAR as TOYOTA, NO_DSU_CAR, TSS2_CAR, UNSUPPORTED_DSU_CAR, ToyotaFrogPilotFlags, ToyotaSafetyFlags +from opendbc.car.toyota.values import CAR as TOYOTA, NO_DSU_CAR, TSS2_CAR, UNSUPPORTED_DSU_CAR, ToyotaStarPilotFlags, ToyotaSafetyFlags from opendbc.car.values import PLATFORMS from opendbc.can import CANParser from openpilot.common.params import Params @@ -30,7 +30,7 @@ from openpilot.common.params import Params GearShifter = structs.CarState.GearShifter ButtonType = structs.CarState.ButtonEvent.Type -# FrogPilot variables +# StarPilot variables Ecu = structs.CarParams.Ecu V_CRUISE_MAX = 145 @@ -121,7 +121,7 @@ class CarInterfaceBase(ABC): CarController: 'CarControllerBase' RadarInterface: 'RadarInterfaceBase' = RadarInterfaceBase - def __init__(self, CP: structs.CarParams, FPCP: custom.FrogPilotCarParams): + def __init__(self, CP: structs.CarParams, FPCP: custom.StarPilotCarParams): self.CP = CP self.frame = 0 @@ -133,17 +133,17 @@ class CarInterfaceBase(ABC): dbc_names = {bus: cp.dbc_name for bus, cp in self.can_parsers.items()} self.CC: CarControllerBase = self.CarController(dbc_names, CP) - # FrogPilot variables + # StarPilot variables self.FPCP = FPCP self.params_memory = Params(memory=True) self.distance_button = 0 - def apply(self, c: structs.CarControl, now_nanos: int | None = None, frogpilot_toggles: SimpleNamespace = None) -> tuple[structs.CarControl.Actuators, list[CanData]]: + def apply(self, c: structs.CarControl, now_nanos: int | None = None, starpilot_toggles: SimpleNamespace = None) -> tuple[structs.CarControl.Actuators, list[CanData]]: if now_nanos is None: now_nanos = int(time.monotonic() * 1e9) - return self.CC.update(c, self.CS, now_nanos, frogpilot_toggles) + return self.CC.update(c, self.CS, now_nanos, starpilot_toggles) @staticmethod def get_pid_accel_limits(CP, current_speed, cruise_speed): @@ -158,7 +158,7 @@ class CarInterfaceBase(ABC): @classmethod def get_params(cls, candidate: str, fingerprint: dict[int, dict[int, int]], car_fw: list[structs.CarParams.CarFw], - alpha_long: bool, is_release: bool, docs: bool, frogpilot_toggles: SimpleNamespace) -> structs.CarParams: + alpha_long: bool, is_release: bool, docs: bool, starpilot_toggles: SimpleNamespace) -> structs.CarParams: ret = CarInterfaceBase.get_std_params(candidate) platform = PLATFORMS[candidate] @@ -181,28 +181,28 @@ class CarInterfaceBase(ABC): ret.rotationalInertia = scale_rot_inertia(ret.mass, ret.wheelbase) ret.tireStiffnessFront, ret.tireStiffnessRear = scale_tire_stiffness(ret.mass, ret.wheelbase, ret.centerToFront, ret.tireStiffnessFactor) - # FrogPilot variables + # StarPilot variables toggles_to_check = ("force_torque_controller", "nnff", "nnff_lite") - if ret.steerControlType != structs.CarParams.SteerControlType.angle and any(getattr(frogpilot_toggles, toggle, False) for toggle in toggles_to_check): + if ret.steerControlType != structs.CarParams.SteerControlType.angle and any(getattr(starpilot_toggles, toggle, False) for toggle in toggles_to_check): CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) return ret - # FrogPilot variables + # StarPilot variables @classmethod - def get_frogpilot_params(cls, candidate: str, fingerprint: dict[int, dict[int, int]], car_fw: list[structs.CarParams.CarFw], CP: structs.CarParams, frogpilot_toggles: SimpleNamespace): - fp_ret = custom.FrogPilotCarParams.new_message() + def get_starpilot_params(cls, candidate: str, fingerprint: dict[int, dict[int, int]], car_fw: list[structs.CarParams.CarFw], CP: structs.CarParams, starpilot_toggles: SimpleNamespace): + fp_ret = custom.StarPilotCarParams.new_message() platform = PLATFORMS[candidate] fp_ret.flags |= int(platform.config.flags) - fp_ret.safetyConfigs = [custom.FrogPilotCarParams.SafetyConfig.new_message(safetyParam=config.safetyParam) for config in CP.safetyConfigs] + fp_ret.safetyConfigs = [custom.StarPilotCarParams.SafetyConfig.new_message(safetyParam=config.safetyParam) for config in CP.safetyConfigs] if platform not in MOCK: if platform in CHRYSLER: if candidate == CHRYSLER.RAM_HD_5TH_GEN: if 570 not in fingerprint[0]: - fp_ret.flags |= ChryslerFrogPilotFlags.RAM_HD_ALT_BUTTONS.value + fp_ret.flags |= ChryslerStarPilotFlags.RAM_HD_ALT_BUTTONS.value elif platform in GM: fp_ret.canUsePedal = True @@ -217,7 +217,7 @@ class CarInterfaceBase(ABC): fp_ret.isHDA2 = hda2 if CP.flags & HyundaiFlags.HAS_LDA_BUTTON: - fp_ret.safetyConfigs[-1].safetyParam |= HyundaiFrogPilotSafetyFlags.HAS_LDA_BUTTON.value + fp_ret.safetyConfigs[-1].safetyParam |= HyundaiStarPilotSafetyFlags.HAS_LDA_BUTTON.value elif platform in TOYOTA: fp_ret.canUsePedal = not CP.autoResumeSng @@ -227,11 +227,11 @@ class CarInterfaceBase(ABC): fp_ret.flags |= ToyotaFlags.RADAR_CAN_FILTER.value if 0x2FF in fingerprint[0] or (0x2AA in fingerprint[0] and candidate in NO_DSU_CAR): - fp_ret.flags |= ToyotaFrogPilotFlags.SMART_DSU.value + fp_ret.flags |= ToyotaStarPilotFlags.SMART_DSU.value if candidate == TOYOTA.TOYOTA_PRIUS: if 0x23 in fingerprint[0]: - fp_ret.flags |= ToyotaFrogPilotFlags.ZSS.value + fp_ret.flags |= ToyotaStarPilotFlags.ZSS.value return fp_ret @@ -313,14 +313,14 @@ class CarInterfaceBase(ABC): tune.torque.latAccelOffset = 0.0 tune.torque.steeringAngleDeadzoneDeg = steering_angle_deadzone_deg - def update(self, can_packets: list[tuple[int, list[CanData]]], frogpilot_toggles: SimpleNamespace) -> structs.CarState: + def update(self, can_packets: list[tuple[int, list[CanData]]], starpilot_toggles: SimpleNamespace) -> structs.CarState: # parse can for cp in self.can_parsers.values(): if cp is not None: cp.update(can_packets) # get CarState - ret, fp_ret = self.CS.update(self.can_parsers, frogpilot_toggles) + ret, fp_ret = self.CS.update(self.can_parsers, starpilot_toggles) ret.canValid = all(cp.can_valid for cp in self.can_parsers.values()) ret.canTimeout = any(cp.bus_timeout for cp in self.can_parsers.values()) @@ -343,7 +343,7 @@ class CarInterfaceBase(ABC): # save for next iteration self.CS.out = ret - # FrogPilot variables + # StarPilot variables prev_distance_button = self.distance_button self.distance_button = self.params_memory.get_bool("OnroadDistanceButtonPressed") if self.distance_button != prev_distance_button: @@ -359,7 +359,7 @@ class CarInterfaceBase(ABC): class CarStateBase(ABC): - def __init__(self, CP: structs.CarParams, FPCP: custom.FrogPilotCarParams): + def __init__(self, CP: structs.CarParams, FPCP: custom.StarPilotCarParams): self.CP = CP self.car_fingerprint = CP.carFingerprint self.out = structs.CarState() @@ -383,7 +383,7 @@ class CarStateBase(ABC): K = get_kalman_gain(DT_CTRL, np.array(A), np.array(C), np.array(Q), R) self.v_ego_kf = KF1D(x0=x0, A=A, C=C[0], K=K) - # FrogPilot variables + # StarPilot variables self.FPCP = FPCP self.CC: structs.CarControl = structs.CarControl.new_message() @@ -391,7 +391,7 @@ class CarStateBase(ABC): self.distance_button = False @abstractmethod - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: pass def parse_wheel_speeds(self, cs, fl, fr, rl, rr, unit=CV.KPH_TO_MS): diff --git a/opendbc_repo/opendbc/car/mazda/carcontroller.py b/opendbc_repo/opendbc/car/mazda/carcontroller.py index 687c9d24..6e2b1e40 100644 --- a/opendbc_repo/opendbc/car/mazda/carcontroller.py +++ b/opendbc_repo/opendbc/car/mazda/carcontroller.py @@ -15,7 +15,7 @@ class CarController(CarControllerBase): self.packer = CANPacker(dbc_names[Bus.pt]) self.brake_counter = 0 - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): can_sends = [] apply_torque = 0 diff --git a/opendbc_repo/opendbc/car/mazda/carstate.py b/opendbc_repo/opendbc/car/mazda/carstate.py index 7c8f8994..bad0d6f1 100644 --- a/opendbc_repo/opendbc/car/mazda/carstate.py +++ b/opendbc_repo/opendbc/car/mazda/carstate.py @@ -21,7 +21,7 @@ class CarState(CarStateBase): self.distance_button = 0 - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.pt] cp_cam = can_parsers[Bus.cam] @@ -116,8 +116,8 @@ class CarState(CarStateBase): # TODO: add button types for inc and dec ret.buttonEvents = create_button_events(self.distance_button, prev_distance_button, {1: ButtonType.gapAdjustCruise}) - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret diff --git a/opendbc_repo/opendbc/car/mazda/interface.py b/opendbc_repo/opendbc/car/mazda/interface.py index 5b6e5154..4a3d8274 100644 --- a/opendbc_repo/opendbc/car/mazda/interface.py +++ b/opendbc_repo/opendbc/car/mazda/interface.py @@ -29,7 +29,7 @@ class CarInterface(CarInterfaceBase): ret.centerToFront = ret.wheelbase * 0.41 - # FrogPilot variables + # StarPilot variables ret.enableBsm = True return ret diff --git a/opendbc_repo/opendbc/car/mock/carcontroller.py b/opendbc_repo/opendbc/car/mock/carcontroller.py index eb75508e..ecf82c42 100644 --- a/opendbc_repo/opendbc/car/mock/carcontroller.py +++ b/opendbc_repo/opendbc/car/mock/carcontroller.py @@ -2,5 +2,5 @@ from opendbc.car.interfaces import CarControllerBase class CarController(CarControllerBase): - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): return CC.actuators.as_builder(), [] diff --git a/opendbc_repo/opendbc/car/mock/carstate.py b/opendbc_repo/opendbc/car/mock/carstate.py index 50ba0a52..b37cf1aa 100644 --- a/opendbc_repo/opendbc/car/mock/carstate.py +++ b/opendbc_repo/opendbc/car/mock/carstate.py @@ -5,4 +5,4 @@ from opendbc.car.interfaces import CarStateBase class CarState(CarStateBase): def update(self, *_) -> structs.CarState: - return structs.CarState(), custom.FrogPilotCarState() + return structs.CarState(), custom.StarPilotCarState() diff --git a/opendbc_repo/opendbc/car/nissan/carcontroller.py b/opendbc_repo/opendbc/car/nissan/carcontroller.py index 76ec2e74..3126c255 100644 --- a/opendbc_repo/opendbc/car/nissan/carcontroller.py +++ b/opendbc_repo/opendbc/car/nissan/carcontroller.py @@ -17,7 +17,7 @@ class CarController(CarControllerBase): self.packer = CANPacker(dbc_names[Bus.pt]) - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators hud_control = CC.hudControl pcm_cancel_cmd = CC.cruiseControl.cancel diff --git a/opendbc_repo/opendbc/car/nissan/carstate.py b/opendbc_repo/opendbc/car/nissan/carstate.py index d9aee75e..6e853216 100644 --- a/opendbc_repo/opendbc/car/nissan/carstate.py +++ b/opendbc_repo/opendbc/car/nissan/carstate.py @@ -25,10 +25,10 @@ class CarState(CarStateBase): self.distance_button = 0 - # FrogPilot variables + # StarPilot variables self.lkas_button = 0 - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.pt] cp_cam = can_parsers[Bus.cam] cp_adas = can_parsers[Bus.adas] @@ -132,8 +132,8 @@ class CarState(CarStateBase): buttonEvents = create_button_events(self.distance_button, prev_distance_button, {1: ButtonType.gapAdjustCruise}) - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() self.prev_lkas_button = self.lkas_button self.lkas_button = ret.invalidLkasSetting diff --git a/opendbc_repo/opendbc/car/psa/carcontroller.py b/opendbc_repo/opendbc/car/psa/carcontroller.py index 93fbc2b3..63910918 100644 --- a/opendbc_repo/opendbc/car/psa/carcontroller.py +++ b/opendbc_repo/opendbc/car/psa/carcontroller.py @@ -13,7 +13,7 @@ class CarController(CarControllerBase): self.apply_angle_last = 0 self.status = 2 - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): can_sends = [] actuators = CC.actuators diff --git a/opendbc_repo/opendbc/car/psa/carstate.py b/opendbc_repo/opendbc/car/psa/carstate.py index 01485753..581060c9 100644 --- a/opendbc_repo/opendbc/car/psa/carstate.py +++ b/opendbc_repo/opendbc/car/psa/carstate.py @@ -10,7 +10,7 @@ TransmissionType = structs.CarParams.TransmissionType class CarState(CarStateBase): - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.main] cp_adas = can_parsers[Bus.adas] cp_cam = can_parsers[Bus.cam] @@ -64,8 +64,8 @@ class CarState(CarStateBase): ret.doorOpen = any((cp_cam.vl['Dat_BSI']['DRIVER_DOOR'], cp_cam.vl['Dat_BSI']['PASSENGER_DOOR'])) ret.seatbeltUnlatched = cp_cam.vl['RESTRAINTS']['DRIVER_SEATBELT'] != 2 - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret diff --git a/opendbc_repo/opendbc/car/rivian/carcontroller.py b/opendbc_repo/opendbc/car/rivian/carcontroller.py index 888e62fb..41d9cce9 100644 --- a/opendbc_repo/opendbc/car/rivian/carcontroller.py +++ b/opendbc_repo/opendbc/car/rivian/carcontroller.py @@ -15,7 +15,7 @@ class CarController(CarControllerBase): self.cancel_frames = 0 - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators can_sends = [] diff --git a/opendbc_repo/opendbc/car/rivian/carstate.py b/opendbc_repo/opendbc/car/rivian/carstate.py index 52445a20..52877fd8 100644 --- a/opendbc_repo/opendbc/car/rivian/carstate.py +++ b/opendbc_repo/opendbc/car/rivian/carstate.py @@ -18,7 +18,7 @@ class CarState(CarStateBase): self.sccm_wheel_touch = None self.vdm_adas_status = None - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.pt] cp_cam = can_parsers[Bus.cam] cp_adas = can_parsers[Bus.adas] @@ -93,8 +93,8 @@ class CarState(CarStateBase): self.sccm_wheel_touch = copy.copy(cp.vl["SCCM_WheelTouch"]) self.vdm_adas_status = copy.copy(cp.vl["VDM_AdasSts"]) - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret diff --git a/opendbc_repo/opendbc/car/subaru/carcontroller.py b/opendbc_repo/opendbc/car/subaru/carcontroller.py index 8b192e86..280b200c 100644 --- a/opendbc_repo/opendbc/car/subaru/carcontroller.py +++ b/opendbc_repo/opendbc/car/subaru/carcontroller.py @@ -11,7 +11,7 @@ from opendbc.car.subaru.values import DBC, GLOBAL_ES_ADDR, CanBus, CarController MAX_STEER_RATE = 25 # deg/s MAX_STEER_RATE_FRAMES = 7 # tx control frames needed before torque can be cut -# FrogPilot variables +# StarPilot variables _SNG_ACC_MIN_DIST = 3 _SNG_ACC_MAX_DIST = 4.5 @@ -27,7 +27,7 @@ class CarController(CarControllerBase): self.p = CarControllerParams(CP) self.packer = CANPacker(DBC[CP.carFingerprint][Bus.pt]) - # FrogPilot variables + # StarPilot variables self.manual_hold = False self.prev_standstill = False self.sng_acc_resume = False @@ -37,7 +37,7 @@ class CarController(CarControllerBase): self.sng_acc_resume_cnt = 0 self.standstill_start = 0 - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators hud_control = CC.hudControl pcm_cancel_cmd = CC.cruiseControl.cancel @@ -71,9 +71,9 @@ class CarController(CarControllerBase): self.apply_torque_last = apply_torque - # FrogPilot variables + # StarPilot variables # *** stop and go *** - if frogpilot_toggles.subaru_sng: + if starpilot_toggles.subaru_sng: throttle_cmd, speed_cmd = self.stop_and_go(CC, CS) # *** longitudinal *** @@ -112,8 +112,8 @@ class CarController(CarControllerBase): can_sends.append(subarucan.create_preglobal_es_distance(self.packer, cruise_button, CS.es_distance_msg)) - # FrogPilot variables - if frogpilot_toggles.subaru_sng: + # StarPilot variables + if starpilot_toggles.subaru_sng: can_sends.append(subarucan.create_preglobal_throttle(self.packer, CS.throttle_msg["COUNTER"] + 1, CS.throttle_msg, throttle_cmd)) else: if self.frame % 10 == 0: @@ -127,8 +127,8 @@ class CarController(CarControllerBase): if self.CP.flags & SubaruFlags.SEND_INFOTAINMENT: can_sends.append(subarucan.create_es_infotainment(self.packer, self.frame // 10, CS.es_infotainment_msg, hud_control.visualAlert)) - # FrogPilot variables - if frogpilot_toggles.subaru_sng: + # StarPilot variables + if starpilot_toggles.subaru_sng: can_sends.append(subarucan.create_throttle(self.packer, CS.throttle_msg["COUNTER"] + 1, CS.throttle_msg, throttle_cmd)) if self.frame % 2 == 0: can_sends.append(subarucan.create_brake_pedal(self.packer, self.frame // 2, CS.brake_pedal_msg, speed_cmd, pcm_cancel_cmd)) @@ -171,7 +171,7 @@ class CarController(CarControllerBase): self.frame += 1 return new_actuators, can_sends - # FrogPilot variables + # StarPilot variables def stop_and_go(self, CC, CS, speed_cmd=False, throttle_cmd=False): if self.CP.flags & SubaruFlags.PREGLOBAL: trigger_resume = CC.enabled diff --git a/opendbc_repo/opendbc/car/subaru/carstate.py b/opendbc_repo/opendbc/car/subaru/carstate.py index e25a137f..1de2e623 100644 --- a/opendbc_repo/opendbc/car/subaru/carstate.py +++ b/opendbc_repo/opendbc/car/subaru/carstate.py @@ -16,7 +16,7 @@ class CarState(CarStateBase): self.angle_rate_calulator = CanSignalRateCalculator(50) - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.pt] cp_cam = can_parsers[Bus.cam] cp_alt = can_parsers[Bus.alt] @@ -124,10 +124,10 @@ class CarState(CarStateBase): if self.CP.flags & SubaruFlags.SEND_INFOTAINMENT: self.es_infotainment_msg = copy.copy(cp_cam.vl["ES_Infotainment"]) - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() - if frogpilot_toggles.subaru_sng: + if starpilot_toggles.subaru_sng: self.brake_pedal_msg = copy.copy(cp.vl["Brake_Pedal"]) self.car_follow = cp_es_distance.vl["ES_Distance"]["Car_Follow"] self.close_distance = cp_es_distance.vl["ES_Distance"]["Close_Distance"] diff --git a/opendbc_repo/opendbc/car/subaru/subarucan.py b/opendbc_repo/opendbc/car/subaru/subarucan.py index 66e205dd..c7bfc427 100644 --- a/opendbc_repo/opendbc/car/subaru/subarucan.py +++ b/opendbc_repo/opendbc/car/subaru/subarucan.py @@ -336,7 +336,7 @@ def subaru_checksum(address: int, sig, d: bytearray) -> int: return s & 0xFF -# FrogPilot variables +# StarPilot variables def create_brake_pedal(packer, frame, brake_pedal_msg, speed_cmd, brake_cmd): values = {s: brake_pedal_msg[s] for s in sorted([ "Brake_Lights", diff --git a/opendbc_repo/opendbc/car/subaru/values.py b/opendbc_repo/opendbc/car/subaru/values.py index e5e83e70..29df2a1d 100644 --- a/opendbc_repo/opendbc/car/subaru/values.py +++ b/opendbc_repo/opendbc/car/subaru/values.py @@ -26,7 +26,7 @@ class CarControllerParams: elif CP.carFingerprint == CAR.SUBARU_IMPREZA_2020: self.STEER_DELTA_UP = 35 self.STEER_MAX = 1439 - # FrogPilot variables + # StarPilot variables elif CP.carFingerprint == CAR.SUBARU_IMPREZA: self.STEER_MAX = 3071 else: diff --git a/opendbc_repo/opendbc/car/tesla/carcontroller.py b/opendbc_repo/opendbc/car/tesla/carcontroller.py index bdf45ae2..bcf801c1 100644 --- a/opendbc_repo/opendbc/car/tesla/carcontroller.py +++ b/opendbc_repo/opendbc/car/tesla/carcontroller.py @@ -25,7 +25,7 @@ class CarController(CarControllerBase): # Vehicle model used for lateral limiting self.VM = VehicleModel(get_safety_CP()) - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators can_sends = [] diff --git a/opendbc_repo/opendbc/car/tesla/carstate.py b/opendbc_repo/opendbc/car/tesla/carstate.py index aed91805..b7b5d48a 100644 --- a/opendbc_repo/opendbc/car/tesla/carstate.py +++ b/opendbc_repo/opendbc/car/tesla/carstate.py @@ -31,7 +31,7 @@ class CarState(CarStateBase): self.autopark_prev = autopark_now self.cruise_enabled_prev = cruise_enabled - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp_party = can_parsers[Bus.party] cp_ap_party = can_parsers[Bus.ap_party] ret = structs.CarState() @@ -118,8 +118,8 @@ class CarState(CarStateBase): # Messages needed by carcontroller self.das_control = copy.copy(cp_ap_party.vl["DAS_control"]) - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret diff --git a/opendbc_repo/opendbc/car/torque_data/params.toml b/opendbc_repo/opendbc/car/torque_data/params.toml index d2cfd4cc..6e350a52 100644 --- a/opendbc_repo/opendbc/car/torque_data/params.toml +++ b/opendbc_repo/opendbc/car/torque_data/params.toml @@ -81,4 +81,4 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] "VOLKSWAGEN_PASSAT_MK8" = [1.3432120736752917, 1.7087275587362314, 0.19444383787326647] "VOLKSWAGEN_TIGUAN_MK2" = [0.9711965500094828, 1.0001565939459098, 0.1465626137072916] -# FrogPilot variables +# StarPilot variables diff --git a/opendbc_repo/opendbc/car/torque_data/substitute.toml b/opendbc_repo/opendbc/car/torque_data/substitute.toml index 75196650..79f9f62e 100644 --- a/opendbc_repo/opendbc/car/torque_data/substitute.toml +++ b/opendbc_repo/opendbc/car/torque_data/substitute.toml @@ -103,5 +103,5 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] "GMC_YUKON_CC" = "CHEVROLET_SILVERADO" "CHEVROLET_TRAILBLAZER_CC" = "CHEVROLET_TRAILBLAZER" -# FrogPilot variables +# StarPilot variables "CHEVROLET_TRAX" = "CHEVROLET_VOLT" diff --git a/opendbc_repo/opendbc/car/toyota/carcontroller.py b/opendbc_repo/opendbc/car/toyota/carcontroller.py index 34febafc..4eadb837 100644 --- a/opendbc_repo/opendbc/car/toyota/carcontroller.py +++ b/opendbc_repo/opendbc/car/toyota/carcontroller.py @@ -35,7 +35,7 @@ MAX_STEER_RATE_FRAMES = 18 # tx control frames needed before torque can be cut # EPS allows user torque above threshold for 50 frames before permanently faulting MAX_USER_TORQUE = 500 -# FrogPilot variables +# StarPilot variables PARK = structs.CarState.GearShifter.park # Lock / unlock door commands - Credit goes to AlexandreSato! @@ -86,10 +86,10 @@ class CarController(CarControllerBase): self.secoc_acc_message_counter = 0 self.secoc_prev_reset_counter = 0 - # FrogPilot variables + # StarPilot variables self.doors_locked = False - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators stopping = actuators.longControlState == LongCtrlState.stopping hud_control = CC.hudControl @@ -183,7 +183,7 @@ class CarController(CarControllerBase): # on entering standstill, send standstill request for older TSS-P cars that aren't designed to stay engaged at a stop if self.CP.carFingerprint not in NO_STOP_TIMER_CAR: - if CS.out.standstill and not self.last_standstill and not frogpilot_toggles.sng_hack: + if CS.out.standstill and not self.last_standstill and not starpilot_toggles.sng_hack: self.standstill_req = True if CS.pcm_acc_status != 8: # pcm entered standstill or it's disabled @@ -194,7 +194,7 @@ class CarController(CarControllerBase): # brakes can take a while to ramp up causing a lurch forward. prevent resume press until planner wants to move. # don't use CC.cruiseControl.resume since it is gated on CS.cruiseState.standstill which goes false for 3s after resume press # TODO: hybrids do not have this issue and can stay stopped after resume press, whitelist them - should_resume = actuators.accel > 0 or frogpilot_toggles.sng_hack + should_resume = actuators.accel > 0 or starpilot_toggles.sng_hack if should_resume: self.standstill_req = False @@ -241,7 +241,7 @@ class CarController(CarControllerBase): self.aego.update(a_ego_blended) j_ego = (self.aego.x - prev_aego) / (DT_CTRL * 3) - if frogpilot_toggles.frogsgomoo_tweak: + if starpilot_toggles.frogsgomoo_tweak: future_t = float(np.interp(CS.out.vEgo, [2., 5.], [0.35, 1.0])) else: future_t = float(np.interp(CS.out.vEgo, [2., 5.], [0.25, 0.5])) @@ -279,7 +279,7 @@ class CarController(CarControllerBase): main_accel_cmd = 0. if self.CP.flags & ToyotaFlags.SECOC.value else pcm_accel_cmd can_sends.append(toyotacan.create_accel_command(self.packer, main_accel_cmd, pcm_cancel_cmd, self.permit_braking, self.standstill_req, lead, - CS.acc_type, fcw_alert, self.distance_button, frogpilot_toggles.reverse_cruise_increase)) + CS.acc_type, fcw_alert, self.distance_button, starpilot_toggles.reverse_cruise_increase)) if self.CP.flags & ToyotaFlags.SECOC.value: acc_cmd_2 = toyotacan.create_accel_command_2(self.packer, pcm_accel_cmd) acc_cmd_2 = add_mac(self.secoc_key, @@ -298,7 +298,7 @@ class CarController(CarControllerBase): if self.CP.carFingerprint in UNSUPPORTED_DSU_CAR: can_sends.append(toyotacan.create_acc_cancel_command(self.packer)) else: - can_sends.append(toyotacan.create_accel_command(self.packer, 0, pcm_cancel_cmd, True, False, lead, CS.acc_type, False, self.distance_button, frogpilot_toggles.reverse_cruise_increase)) + can_sends.append(toyotacan.create_accel_command(self.packer, 0, pcm_cancel_cmd, True, False, lead, CS.acc_type, False, self.distance_button, starpilot_toggles.reverse_cruise_increase)) # *** hud ui *** if self.CP.carFingerprint != CAR.TOYOTA_PRIUS_V: @@ -334,13 +334,13 @@ class CarController(CarControllerBase): self.frame += 1 - # FrogPilot variables + # StarPilot variables if not self.doors_locked and CS.out.gearShifter != PARK: - if frogpilot_toggles.lock_doors: + if starpilot_toggles.lock_doors: can_sends.append(CanData(0x750, LOCK_CMD, 0)) self.doors_locked = True elif self.doors_locked and CS.out.gearShifter == PARK: - if frogpilot_toggles.unlock_doors: + if starpilot_toggles.unlock_doors: can_sends.append(CanData(0x750, UNLOCK_CMD, 0)) self.doors_locked = False diff --git a/opendbc_repo/opendbc/car/toyota/carstate.py b/opendbc_repo/opendbc/car/toyota/carstate.py index 7aaecb04..9d1847c8 100644 --- a/opendbc_repo/opendbc/car/toyota/carstate.py +++ b/opendbc_repo/opendbc/car/toyota/carstate.py @@ -6,7 +6,7 @@ from opendbc.car import Bus, DT_CTRL, create_button_events, structs from opendbc.car.common.conversions import Conversions as CV from opendbc.car.common.filter_simple import FirstOrderFilter from opendbc.car.interfaces import CarStateBase -from opendbc.car.toyota.values import ToyotaFlags, ToyotaFrogPilotFlags, CAR, DBC, STEER_THRESHOLD, NO_STOP_TIMER_CAR, \ +from opendbc.car.toyota.values import ToyotaFlags, ToyotaStarPilotFlags, CAR, DBC, STEER_THRESHOLD, NO_STOP_TIMER_CAR, \ TSS2_CAR, RADAR_ACC_CAR, EPS_SCALE, UNSUPPORTED_DSU_CAR, \ SECOC_CAR @@ -67,17 +67,17 @@ class CarState(CarStateBase): self.gvc = 0.0 self.secoc_synchronization = None - # FrogPilot variables + # StarPilot variables self.latActive_previous = False self.needs_angle_offset_zss = False self.angle_offset_zss = 0 - self.has_can_filter = self.FPCP.flags & ToyotaFrogPilotFlags.RADAR_CAN_FILTER.value - self.has_SDSU = self.FPCP.flags & ToyotaFrogPilotFlags.SMART_DSU.value - self.has_ZSS = self.FPCP.flags & ToyotaFrogPilotFlags.ZSS.value + self.has_can_filter = self.FPCP.flags & ToyotaStarPilotFlags.RADAR_CAN_FILTER.value + self.has_SDSU = self.FPCP.flags & ToyotaStarPilotFlags.SMART_DSU.value + self.has_ZSS = self.FPCP.flags & ToyotaStarPilotFlags.ZSS.value - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: cp = can_parsers[Bus.pt] cp_cam = can_parsers[Bus.cam] @@ -111,7 +111,7 @@ class CarState(CarStateBase): cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_RL"], cp.vl["WHEEL_SPEEDS"]["WHEEL_SPEED_RR"], ) - ret.vEgoCluster = ret.vEgo * frogpilot_toggles.cluster_offset + ret.vEgoCluster = ret.vEgo * starpilot_toggles.cluster_offset ret.standstill = abs(ret.vEgoRaw) < 1e-3 @@ -222,8 +222,8 @@ class CarState(CarStateBase): buttonEvents += create_button_events(self.distance_button, prev_distance_button, {1: ButtonType.gapAdjustCruise}) - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() if self.has_SDSU and not self.has_can_filter: prev_distance_button = self.distance_button diff --git a/opendbc_repo/opendbc/car/toyota/values.py b/opendbc_repo/opendbc/car/toyota/values.py index d44feb14..5ff2ccb6 100644 --- a/opendbc_repo/opendbc/car/toyota/values.py +++ b/opendbc_repo/opendbc/car/toyota/values.py @@ -80,8 +80,8 @@ class ToyotaFlags(IntFlag): SNG_WITHOUT_DSU_DEPRECATED = 512 -# FrogPilot variables -class ToyotaFrogPilotFlags(IntFlag): +# StarPilot variables +class ToyotaStarPilotFlags(IntFlag): RADAR_CAN_FILTER = 1 SMART_DSU = 2 ZSS = 4 diff --git a/opendbc_repo/opendbc/car/volkswagen/carcontroller.py b/opendbc_repo/opendbc/car/volkswagen/carcontroller.py index 62d7d79d..f91425b5 100644 --- a/opendbc_repo/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc_repo/opendbc/car/volkswagen/carcontroller.py @@ -32,7 +32,7 @@ class CarController(CarControllerBase): self.hca_frame_timer_running = 0 self.hca_frame_same_torque = 0 - def update(self, CC, CS, now_nanos, frogpilot_toggles): + def update(self, CC, CS, now_nanos, starpilot_toggles): actuators = CC.actuators hud_control = CC.hudControl can_sends = [] @@ -88,7 +88,7 @@ class CarController(CarControllerBase): acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) accel = float(np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0) stopping = actuators.longControlState == LongCtrlState.stopping - starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < frogpilot_toggles.vEgoStopping) + starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < starpilot_toggles.vEgoStopping) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, self.CAN.pt, CS.acc_type, CC.longActive, accel, acc_control, stopping, starting, CS.esp_hold_confirmation)) diff --git a/opendbc_repo/opendbc/car/volkswagen/carstate.py b/opendbc_repo/opendbc/car/volkswagen/carstate.py index fbbef8b0..ba36d130 100644 --- a/opendbc_repo/opendbc/car/volkswagen/carstate.py +++ b/opendbc_repo/opendbc/car/volkswagen/carstate.py @@ -43,7 +43,7 @@ class CarState(CarStateBase): return button_events - def update(self, can_parsers, frogpilot_toggles) -> structs.CarState: + def update(self, can_parsers, starpilot_toggles) -> structs.CarState: pt_cp = can_parsers[Bus.pt] cam_cp = can_parsers[Bus.cam] ext_cp = pt_cp if self.CP.networkLocation == NetworkLocation.fwdCamera else cam_cp @@ -139,8 +139,8 @@ class CarState(CarStateBase): self.frame += 1 - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret @@ -234,8 +234,8 @@ class CarState(CarStateBase): self.frame += 1 - # FrogPilot variables - fp_ret = custom.FrogPilotCarState.new_message() + # StarPilot variables + fp_ret = custom.StarPilotCarState.new_message() return ret, fp_ret diff --git a/opendbc_repo/opendbc/safety/__init__.py b/opendbc_repo/opendbc/safety/__init__.py index 24b0b532..436bc507 100644 --- a/opendbc_repo/opendbc/safety/__init__.py +++ b/opendbc_repo/opendbc/safety/__init__.py @@ -9,6 +9,6 @@ class ALTERNATIVE_EXPERIENCE: RAISE_LONGITUDINAL_LIMITS_TO_ISO_MAX = 8 ALLOW_AEB = 16 - # FrogPilot variables + # StarPilot variables ALWAYS_ON_LATERAL = 32 GM_REMAP_CANCEL_TO_DISTANCE = 64 diff --git a/opendbc_repo/opendbc/safety/declarations.h b/opendbc_repo/opendbc/safety/declarations.h index 576943ad..e0d6be62 100644 --- a/opendbc_repo/opendbc/safety/declarations.h +++ b/opendbc_repo/opendbc/safety/declarations.h @@ -268,7 +268,7 @@ extern bool acc_main_on; // referred to as "ACC off" in ISO 15622:2018 extern int cruise_button_prev; extern bool safety_rx_checks_invalid; -// FrogPilot variables +// StarPilot variables extern bool aol_allowed; extern bool lkas_button_prev; extern bool lkas_on; @@ -317,7 +317,7 @@ extern bool gm_remote_start_boots_comma; // This flag allows AEB to be commanded from openpilot. #define ALT_EXP_ALLOW_AEB 16 -// FrogPilot variables +// StarPilot variables #define ALT_EXP_ALWAYS_ON_LATERAL 32 #define ALT_EXP_GM_REMAP_CANCEL_TO_DISTANCE 64 diff --git a/opendbc_repo/opendbc/safety/modes/chrysler.h b/opendbc_repo/opendbc/safety/modes/chrysler.h index 9348e8fb..67ff9a94 100644 --- a/opendbc_repo/opendbc/safety/modes/chrysler.h +++ b/opendbc_repo/opendbc/safety/modes/chrysler.h @@ -79,7 +79,7 @@ static void chrysler_rx_hook(const CANPacket_t *msg) { bool cruise_engaged = GET_BIT(msg, 21U); pcm_cruise_check(cruise_engaged); - // FrogPilot variables + // StarPilot variables acc_main_on = GET_BIT(msg, 20U); } diff --git a/opendbc_repo/opendbc/safety/modes/ford.h b/opendbc_repo/opendbc/safety/modes/ford.h index a1957ad0..423d9f63 100644 --- a/opendbc_repo/opendbc/safety/modes/ford.h +++ b/opendbc_repo/opendbc/safety/modes/ford.h @@ -159,7 +159,7 @@ static void ford_rx_hook(const CANPacket_t *msg) { bool cruise_engaged = (cruise_state == 4U) || (cruise_state == 5U); pcm_cruise_check(cruise_engaged); - // FrogPilot variables + // StarPilot variables acc_main_on = (cruise_state == 3U) || cruise_engaged; } } diff --git a/opendbc_repo/opendbc/safety/modes/gm.h b/opendbc_repo/opendbc/safety/modes/gm.h index 6e550053..bd8846b9 100644 --- a/opendbc_repo/opendbc/safety/modes/gm.h +++ b/opendbc_repo/opendbc/safety/modes/gm.h @@ -350,7 +350,7 @@ static void gm_rx_hook(const CANPacket_t *msg) { } } - // FrogPilot variables + // StarPilot variables if (msg->addr == 0xC9U) { acc_main_on = GET_BIT(msg, 29U); } diff --git a/opendbc_repo/opendbc/safety/modes/hyundai.h b/opendbc_repo/opendbc/safety/modes/hyundai.h index 2d917358..c431997c 100644 --- a/opendbc_repo/opendbc/safety/modes/hyundai.h +++ b/opendbc_repo/opendbc/safety/modes/hyundai.h @@ -52,7 +52,7 @@ const LongitudinalLimits HYUNDAI_LONG_LIMITS = { #define HYUNDAI_FCEV_GAS_ADDR_CHECK \ {.msg = {{0x91, 0, 8, 100U, .ignore_checksum = true, .ignore_counter = true, .ignore_quality_flag = true}, { 0 }, { 0 }}}, \ -// FrogPilot variables +// StarPilot variables #define HYUNDAI_LDA_BUTTON_ADDR_CHECK \ {.msg = {{0x391, 0, 8, 100U, .ignore_checksum = true, .ignore_counter = true, .ignore_quality_flag = true}, { 0 }, { 0 }}}, \ @@ -178,7 +178,7 @@ static void hyundai_rx_hook(const CANPacket_t *msg) { brake_pressed = ((msg->data[5] >> 5U) & 0x3U) == 0x2U; } - // FrogPilot variables + // StarPilot variables if (msg->addr == 0x391U) { hyundai_lkas_button_check(GET_BIT(msg, 4U)); } @@ -288,7 +288,7 @@ static safety_config hyundai_init(uint16_t param) { HYUNDAI_FCEV_GAS_ADDR_CHECK }; - // FrogPilot variables + // StarPilot variables static RxCheck hyundai_long_rx_checks_lda[] = { HYUNDAI_COMMON_RX_CHECKS(false) HYUNDAI_LDA_BUTTON_ADDR_CHECK @@ -325,7 +325,7 @@ static safety_config hyundai_init(uint16_t param) { HYUNDAI_SCC12_ADDR_CHECK(2) }; - // FrogPilot variables + // StarPilot variables static RxCheck hyundai_cam_scc_rx_checks_lda[] = { HYUNDAI_COMMON_RX_CHECKS(false) HYUNDAI_SCC12_ADDR_CHECK(2) @@ -349,7 +349,7 @@ static safety_config hyundai_init(uint16_t param) { HYUNDAI_FCEV_GAS_ADDR_CHECK }; - // FrogPilot variables + // StarPilot variables static RxCheck hyundai_rx_checks_lda[] = { HYUNDAI_COMMON_RX_CHECKS(false) HYUNDAI_SCC12_ADDR_CHECK(0) diff --git a/opendbc_repo/opendbc/safety/modes/hyundai_canfd.h b/opendbc_repo/opendbc/safety/modes/hyundai_canfd.h index 3a7b5c9e..fb508132 100644 --- a/opendbc_repo/opendbc/safety/modes/hyundai_canfd.h +++ b/opendbc_repo/opendbc/safety/modes/hyundai_canfd.h @@ -89,13 +89,13 @@ static void hyundai_canfd_rx_hook(const CANPacket_t *msg) { cruise_button = msg->data[2] & 0x7U; main_button = GET_BIT(msg, 19U); - // FrogPilot variables + // StarPilot variables hyundai_lkas_button_check(GET_BIT(msg, 23U)); } else { cruise_button = (msg->data[4] >> 4) & 0x7U; main_button = GET_BIT(msg, 34U); - // FrogPilot variables + // StarPilot variables hyundai_lkas_button_check(GET_BIT(msg, 39U)); } hyundai_common_cruise_buttons_check(cruise_button, main_button); diff --git a/opendbc_repo/opendbc/safety/modes/hyundai_common.h b/opendbc_repo/opendbc/safety/modes/hyundai_common.h index f57b34e2..4d6648ca 100644 --- a/opendbc_repo/opendbc/safety/modes/hyundai_common.h +++ b/opendbc_repo/opendbc/safety/modes/hyundai_common.h @@ -42,7 +42,7 @@ bool hyundai_fcev_gas_signal = false; extern bool hyundai_alt_limits_2; bool hyundai_alt_limits_2 = false; -// FrogPilot variables +// StarPilot variables extern bool hyundai_has_lda_button; bool hyundai_has_lda_button = false; @@ -57,7 +57,7 @@ void hyundai_common_init(uint16_t param) { const uint16_t HYUNDAI_PARAM_FCEV_GAS = 256; const uint16_t HYUNDAI_PARAM_ALT_LIMITS_2 = 512; - // FrogPilot variables + // StarPilot variables const int HYUNDAI_PARAM_HAS_LDA_BUTTON = 1024; hyundai_ev_gas_signal = GET_FLAG(param, HYUNDAI_PARAM_EV_GAS); @@ -68,7 +68,7 @@ void hyundai_common_init(uint16_t param) { hyundai_fcev_gas_signal = GET_FLAG(param, HYUNDAI_PARAM_FCEV_GAS); hyundai_alt_limits_2 = GET_FLAG(param, HYUNDAI_PARAM_ALT_LIMITS_2); - // FrogPilot variables + // StarPilot variables hyundai_has_lda_button = GET_FLAG(param, HYUNDAI_PARAM_HAS_LDA_BUTTON); hyundai_last_button_interaction = HYUNDAI_PREV_BUTTON_SAMPLES; @@ -121,7 +121,7 @@ void hyundai_common_cruise_buttons_check(const int cruise_button, const bool mai cruise_button_prev = cruise_button; } - // FrogPilot variables + // StarPilot variables if (main_button && !main_button_prev) { acc_main_on = !acc_main_on; } @@ -155,7 +155,7 @@ uint32_t hyundai_common_canfd_compute_checksum(const CANPacket_t *msg) { } #endif -// FrogPilot variables +// StarPilot variables void hyundai_lkas_button_check(const bool lkas_button) { if (lkas_button && !lkas_button_prev) { lkas_on = !lkas_on; diff --git a/opendbc_repo/opendbc/safety/modes/mazda.h b/opendbc_repo/opendbc/safety/modes/mazda.h index cb9d9f37..888e7c6d 100644 --- a/opendbc_repo/opendbc/safety/modes/mazda.h +++ b/opendbc_repo/opendbc/safety/modes/mazda.h @@ -35,7 +35,7 @@ static void mazda_rx_hook(const CANPacket_t *msg) { bool cruise_engaged = msg->data[0] & 0x8U; pcm_cruise_check(cruise_engaged); - // FrogPilot variables + // StarPilot variables acc_main_on = GET_BIT(msg, 17U); } diff --git a/opendbc_repo/opendbc/safety/modes/nissan.h b/opendbc_repo/opendbc/safety/modes/nissan.h index 23765687..350133a0 100644 --- a/opendbc_repo/opendbc/safety/modes/nissan.h +++ b/opendbc_repo/opendbc/safety/modes/nissan.h @@ -51,7 +51,7 @@ static void nissan_rx_hook(const CANPacket_t *msg) { pcm_cruise_check(cruise_engaged); } - // FrogPilot variables + // StarPilot variables if ((msg->addr == 0x1B6U) && (msg->bus == (nissan_alt_eps ? 2U : 1U))) { acc_main_on = GET_BIT(msg, 36U); } diff --git a/opendbc_repo/opendbc/safety/modes/psa.h b/opendbc_repo/opendbc/safety/modes/psa.h index 04e12b7c..8e3a65da 100644 --- a/opendbc_repo/opendbc/safety/modes/psa.h +++ b/opendbc_repo/opendbc/safety/modes/psa.h @@ -10,7 +10,7 @@ #define PSA_DAT_BSI 1042U // RX from BSI, brake #define PSA_LANE_KEEP_ASSIST 1010U // TX from OP, EPS -// FrogPilot variables +// StarPilot variables #define PSA_HS2_DYN1_MDD_ETAT_2B6 694U // RX from BSI, ACC status // CAN bus @@ -24,7 +24,7 @@ static uint8_t psa_get_counter(const CANPacket_t *msg) { cnt = (msg->data[3] >> 4) & 0xFU; } else if (msg->addr == PSA_HS2_DYN_ABR_38D) { cnt = (msg->data[5] >> 4) & 0xFU; - // FrogPilot variables + // StarPilot variables } else if (msg->addr == PSA_HS2_DYN1_MDD_ETAT_2B6) { cnt = (msg->data[7] >> 4) & 0xFU; } else { @@ -38,7 +38,7 @@ static uint32_t psa_get_checksum(const CANPacket_t *msg) { chksum = msg->data[5] & 0xFU; } else if (msg->addr == PSA_HS2_DYN_ABR_38D) { chksum = msg->data[5] & 0xFU; - // FrogPilot variables + // StarPilot variables } else if (msg->addr == PSA_HS2_DYN1_MDD_ETAT_2B6) { chksum = msg->data[7] & 0xFU; } else { @@ -68,7 +68,7 @@ static uint32_t psa_compute_checksum(const CANPacket_t *msg) { chk = _psa_compute_checksum(msg, 0x4, 5); } else if (msg->addr == PSA_HS2_DYN_ABR_38D) { chk = _psa_compute_checksum(msg, 0x7, 5); - // FrogPilot variables + // StarPilot variables } else if (msg->addr == PSA_HS2_DYN1_MDD_ETAT_2B6) { chk = _psa_compute_checksum(msg, 0x3, 7); } else { @@ -96,7 +96,7 @@ static void psa_rx_hook(const CANPacket_t *msg) { if (msg->addr == PSA_HS2_DAT_MDD_CMD_452) { pcm_cruise_check((msg->data[2U] >> 7U) & 1U); // RVV_ACC_ACTIVATION_REQ } - // FrogPilot variables + // StarPilot variables if (msg->addr == PSA_HS2_DYN1_MDD_ETAT_2B6) { acc_main_on = (msg->data[3] & 0x0FU) > 2; } @@ -153,7 +153,7 @@ static safety_config psa_init(uint16_t param) { {.msg = {{PSA_DYN_CMM, PSA_MAIN_BUS, 8, 100U, .ignore_checksum = true, .ignore_counter = true, .ignore_quality_flag = true}, { 0 }, { 0 }}}, // gas pedal {.msg = {{PSA_DAT_BSI, PSA_CAM_BUS, 8, 20U, .ignore_checksum = true, .ignore_counter = true, .ignore_quality_flag = true}, { 0 }, { 0 }}}, // brake - // FrogPilot variables + // StarPilot variables {.msg = {{PSA_HS2_DYN1_MDD_ETAT_2B6, PSA_ADAS_BUS, 8, 20U, .max_counter = 15U, .ignore_quality_flag = true}, { 0 }, { 0 }}}, // ACC status }; diff --git a/opendbc_repo/opendbc/safety/modes/rivian.h b/opendbc_repo/opendbc/safety/modes/rivian.h index 176694b7..c55c6e8b 100644 --- a/opendbc_repo/opendbc/safety/modes/rivian.h +++ b/opendbc_repo/opendbc/safety/modes/rivian.h @@ -98,7 +98,7 @@ static void rivian_rx_hook(const CANPacket_t *msg) { const int feature_status = msg->data[2] >> 5U; pcm_cruise_check(feature_status == 1); - // FrogPilot variables + // StarPilot variables acc_main_on = (feature_status == 0) || (feature_status == 1); } } diff --git a/opendbc_repo/opendbc/safety/modes/subaru.h b/opendbc_repo/opendbc/safety/modes/subaru.h index 94955cdd..be893bbb 100644 --- a/opendbc_repo/opendbc/safety/modes/subaru.h +++ b/opendbc_repo/opendbc/safety/modes/subaru.h @@ -110,7 +110,7 @@ static void subaru_rx_hook(const CANPacket_t *msg) { bool cruise_engaged = (msg->data[5] >> 1) & 1U; pcm_cruise_check(cruise_engaged); - // FrogPilot variables + // StarPilot variables acc_main_on = GET_BIT(msg, 40U); } diff --git a/opendbc_repo/opendbc/safety/modes/subaru_preglobal.h b/opendbc_repo/opendbc/safety/modes/subaru_preglobal.h index 673728d6..77a83065 100644 --- a/opendbc_repo/opendbc/safety/modes/subaru_preglobal.h +++ b/opendbc_repo/opendbc/safety/modes/subaru_preglobal.h @@ -34,7 +34,7 @@ static void subaru_preglobal_rx_hook(const CANPacket_t *msg) { bool cruise_engaged = (msg->data[6] >> 1) & 1U; pcm_cruise_check(cruise_engaged); - // FrogPilot variables + // StarPilot variables acc_main_on = GET_BIT(msg, 48U); } diff --git a/opendbc_repo/opendbc/safety/modes/tesla.h b/opendbc_repo/opendbc/safety/modes/tesla.h index dd1394b3..9bfc2b5a 100644 --- a/opendbc_repo/opendbc/safety/modes/tesla.h +++ b/opendbc_repo/opendbc/safety/modes/tesla.h @@ -160,7 +160,7 @@ static void tesla_rx_hook(const CANPacket_t *msg) { pcm_cruise_check(cruise_engaged); - // FrogPilot variables + // StarPilot variables acc_main_on = ((cruise_state == 1) || cruise_engaged) && !tesla_autopark; } diff --git a/opendbc_repo/opendbc/safety/modes/toyota.h b/opendbc_repo/opendbc/safety/modes/toyota.h index 47b50cf1..912d8727 100644 --- a/opendbc_repo/opendbc/safety/modes/toyota.h +++ b/opendbc_repo/opendbc/safety/modes/toyota.h @@ -39,7 +39,7 @@ #define TOYOTA_COMMON_RX_CHECKS(lta) \ {.msg = {{ 0xaa, 0, 8, 83U, .ignore_checksum = true, .ignore_counter = true, .ignore_quality_flag = true}, { 0 }, { 0 }}}, \ {.msg = {{0x260, 0, 8, 50U, .ignore_counter = true, .ignore_quality_flag=!(lta)}, { 0 }, { 0 }}}, \ - /* FrogPilot Variables */ \ + /* StarPilot Variables */ \ {.msg = {{0x1D3, 0, 8, 33U, .ignore_checksum = true, .ignore_counter = true, .ignore_quality_flag = true}, { 0 }, { 0 }}}, \ #define TOYOTA_RX_CHECKS(lta) \ @@ -162,7 +162,7 @@ static void toyota_rx_hook(const CANPacket_t *msg) { UPDATE_VEHICLE_SPEED(speed / 4.0 * 0.01 * KPH_TO_MS); } - // FrogPilot variables + // StarPilot variables if (msg->addr == 0x1D3U) { acc_main_on = GET_BIT(msg, 15U); } diff --git a/opendbc_repo/opendbc/safety/safety.h b/opendbc_repo/opendbc/safety/safety.h index f18f01e9..47709c0b 100644 --- a/opendbc_repo/opendbc/safety/safety.h +++ b/opendbc_repo/opendbc/safety/safety.h @@ -60,7 +60,7 @@ bool acc_main_on = false; // referred to as "ACC off" in ISO 15622:2018 int cruise_button_prev = 0; bool safety_rx_checks_invalid = false; -// FrogPilot variables +// StarPilot variables bool aol_allowed = false; bool lkas_button_prev = false; bool lkas_on = false; @@ -375,7 +375,7 @@ static void generic_rx_checks(void) { } steering_disengage_prev = steering_disengage; - // FrogPilot variables + // StarPilot variables aol_allowed = (acc_main_on || lkas_on) && (alternative_experience & ALT_EXP_ALWAYS_ON_LATERAL); } @@ -501,7 +501,7 @@ int set_safety_hooks(uint16_t mode, uint16_t param) { enable_gas_interceptor = false; gas_interceptor_prev = 0; - // FrogPilot variables + // StarPilot variables aol_allowed = false; lkas_button_prev = false; lkas_on = false; diff --git a/opendbc_repo/opendbc/safety/tests/common.py b/opendbc_repo/opendbc/safety/tests/common.py index 51d3bba7..4be28d7f 100644 --- a/opendbc_repo/opendbc/safety/tests/common.py +++ b/opendbc_repo/opendbc/safety/tests/common.py @@ -310,7 +310,7 @@ class TorqueSteeringSafetyTestBase(SafetyTestBase, abc.ABC): for _ in range(10): self.assertFalse(self._tx(self._torque_cmd_msg(self.MAX_TORQUE, 1))) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): """Toggles "Always On Lateral" On/Off""" pass @@ -851,7 +851,7 @@ class AngleSteeringSafetyTest(VehicleSpeedSafetyTest): for _ in range(5): self.assertTrue(self._tx(self._angle_cmd_msg(0, True, increment_timer=False))) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): """Toggles "Always On Lateral" on/off""" pass diff --git a/opendbc_repo/opendbc/safety/tests/hyundai_common.py b/opendbc_repo/opendbc/safety/tests/hyundai_common.py index fb18e495..9ec336b6 100644 --- a/opendbc_repo/opendbc/safety/tests/hyundai_common.py +++ b/opendbc_repo/opendbc/safety/tests/hyundai_common.py @@ -71,7 +71,7 @@ class HyundaiButtonBase: self.assertEqual(controls_allowed, self.safety.get_controls_allowed()) self._rx(self._button_msg(Buttons.NONE)) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): """ Simulates toggling the main cruise button. The safety model requires a diff --git a/opendbc_repo/opendbc/safety/tests/test_chrysler.py b/opendbc_repo/opendbc/safety/tests/test_chrysler.py index be424584..b461b670 100755 --- a/opendbc_repo/opendbc/safety/tests/test_chrysler.py +++ b/opendbc_repo/opendbc/safety/tests/test_chrysler.py @@ -71,7 +71,7 @@ class TestChryslerSafety(common.CarSafetyTest, common.MotorTorqueSteeringSafetyT self.assertFalse(self._tx(self._button_msg(cancel=True, resume=True))) self.assertFalse(self._tx(self._button_msg(cancel=False, resume=False))) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # DAS_3, bit 20 is ACC_AVAILABLE values = {"ACC_AVAILABLE": 1 if toggle_on else 0} diff --git a/opendbc_repo/opendbc/safety/tests/test_ford.py b/opendbc_repo/opendbc/safety/tests/test_ford.py index 3c9ab26f..b977315f 100755 --- a/opendbc_repo/opendbc/safety/tests/test_ford.py +++ b/opendbc_repo/opendbc/safety/tests/test_ford.py @@ -378,7 +378,7 @@ class TestFordSafetyBase(common.CarSafetyTest): for bus in (0, 2): self.assertEqual(enabled, self._tx(self._acc_button_msg(Buttons.CANCEL, bus))) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # EngBrakeData, CcStat_D_Actl is the cruise state # 3 is standby (main on), 5 is active (engaged) diff --git a/opendbc_repo/opendbc/safety/tests/test_gm.py b/opendbc_repo/opendbc/safety/tests/test_gm.py index 6ee2e3af..5815c37a 100755 --- a/opendbc_repo/opendbc/safety/tests/test_gm.py +++ b/opendbc_repo/opendbc/safety/tests/test_gm.py @@ -132,7 +132,7 @@ class TestGmSafetyBase(common.CarSafetyTest, common.DriverTorqueSteeringSafetyTe values = {"ACCButtons": buttons} return self.packer.make_can_msg_safety("ASCMSteeringButton", self.BUTTONS_BUS, values) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # ECMEngineStatus, bit 29 is CruiseMainOn values = {"CruiseMainOn": 1 if toggle_on else 0} diff --git a/opendbc_repo/opendbc/safety/tests/test_honda.py b/opendbc_repo/opendbc/safety/tests/test_honda.py index 571f7cf0..c0ab7d59 100755 --- a/opendbc_repo/opendbc/safety/tests/test_honda.py +++ b/opendbc_repo/opendbc/safety/tests/test_honda.py @@ -237,7 +237,7 @@ class HondaBase(common.CarSafetyTest): self.assertTrue(self._tx(self._send_steer_msg(0x0000))) self.assertFalse(self._tx(self._send_steer_msg(0x1000))) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # SCM_FEEDBACK, bit 28 is MAIN_ON values = {"MAIN_ON": 1 if toggle_on else 0, "COUNTER": self.cnt_acc_state % 4} diff --git a/opendbc_repo/opendbc/safety/tests/test_hyundai_canfd.py b/opendbc_repo/opendbc/safety/tests/test_hyundai_canfd.py index 7264453d..ab894ce4 100755 --- a/opendbc_repo/opendbc/safety/tests/test_hyundai_canfd.py +++ b/opendbc_repo/opendbc/safety/tests/test_hyundai_canfd.py @@ -81,7 +81,7 @@ class TestHyundaiCanfdBase(HyundaiButtonBase, common.CarSafetyTest, common.Drive } return self.packer.make_can_msg_safety("CRUISE_BUTTONS", bus, values) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): if not hasattr(self, "_aol_state"): self._aol_state = False @@ -172,7 +172,7 @@ class TestHyundaiCanfdLFASteeringAltButtonsBase(TestHyundaiCanfdLFASteeringBase) self.assertFalse(self._tx(self._acc_cancel_msg(True, accel=1))) self.assertFalse(self._tx(self._acc_cancel_msg(False))) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): if not hasattr(self, "_aol_state"): self._aol_state = False diff --git a/opendbc_repo/opendbc/safety/tests/test_mazda.py b/opendbc_repo/opendbc/safety/tests/test_mazda.py index 70ca8581..533259cf 100755 --- a/opendbc_repo/opendbc/safety/tests/test_mazda.py +++ b/opendbc_repo/opendbc/safety/tests/test_mazda.py @@ -80,7 +80,7 @@ class TestMazdaSafety(common.CarSafetyTest, common.DriverTorqueSteeringSafetyTes self.assertTrue(self._tx(self._button_msg(cancel=True))) self.assertTrue(self._tx(self._button_msg(resume=True))) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # CRZ_CTRL, CRZ_AVAILABLE is the main on button values = {"CRZ_AVAILABLE": 1 if toggle_on else 0} diff --git a/opendbc_repo/opendbc/safety/tests/test_nissan.py b/opendbc_repo/opendbc/safety/tests/test_nissan.py index 8f9940a8..94b2e61e 100755 --- a/opendbc_repo/opendbc/safety/tests/test_nissan.py +++ b/opendbc_repo/opendbc/safety/tests/test_nissan.py @@ -79,7 +79,7 @@ class TestNissanSafety(common.CarSafetyTest, common.AngleSteeringSafetyTest): tx = self._tx(self._acc_button_cmd(**args)) self.assertEqual(tx, should_tx) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # PRO_PILOT, CRUISE_ON is the main on button for X-Trail/Rogue/Altima values = {"CRUISE_ON": 1 if toggle_on else 0} @@ -119,7 +119,7 @@ class TestNissanLeafSafety(TestNissanSafety): def test_acc_buttons(self): pass - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # CRUISE_THROTTLE, CRUISE_AVAILABLE is the main on button for Leaf values = {"CRUISE_AVAILABLE": 1 if toggle_on else 0} diff --git a/opendbc_repo/opendbc/safety/tests/test_subaru.py b/opendbc_repo/opendbc/safety/tests/test_subaru.py index 14ea0d55..37a7b1b2 100755 --- a/opendbc_repo/opendbc/safety/tests/test_subaru.py +++ b/opendbc_repo/opendbc/safety/tests/test_subaru.py @@ -111,7 +111,7 @@ class TestSubaruSafetyBase(common.CarSafetyTest): values = {"Cruise_Activated": enable} return self.packer.make_can_msg_safety("CruiseControl", self.ALT_MAIN_BUS, values) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # CruiseControl, Cruise_On is the main on button values = {"Cruise_On": 1 if toggle_on else 0} diff --git a/opendbc_repo/opendbc/safety/tests/test_subaru_preglobal.py b/opendbc_repo/opendbc/safety/tests/test_subaru_preglobal.py index 405b62d2..ec726f3f 100755 --- a/opendbc_repo/opendbc/safety/tests/test_subaru_preglobal.py +++ b/opendbc_repo/opendbc/safety/tests/test_subaru_preglobal.py @@ -59,7 +59,7 @@ class TestSubaruPreglobalSafety(common.CarSafetyTest, common.DriverTorqueSteerin values = {"Cruise_Activated": enable} return self.packer.make_can_msg_safety("CruiseControl", 0, values) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # CruiseControl, Cruise_On is the main on button values = {"Cruise_On": 1 if toggle_on else 0} diff --git a/opendbc_repo/opendbc/safety/tests/test_tesla.py b/opendbc_repo/opendbc/safety/tests/test_tesla.py index 95088954..cbca544a 100755 --- a/opendbc_repo/opendbc/safety/tests/test_tesla.py +++ b/opendbc_repo/opendbc/safety/tests/test_tesla.py @@ -353,7 +353,7 @@ class TestTeslaSafetyBase(common.CarSafetyTest, common.AngleSteeringSafetyTest, # Recover self.assertTrue(self._tx(self._angle_cmd_msg(0, True))) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # DI_state, DI_cruiseState is the cruise state, 1 is standby values = {"DI_cruiseState": 1 if toggle_on else 0} diff --git a/opendbc_repo/opendbc/safety/tests/test_toyota.py b/opendbc_repo/opendbc/safety/tests/test_toyota.py index e52d1183..59b7dc46 100644 --- a/opendbc_repo/opendbc/safety/tests/test_toyota.py +++ b/opendbc_repo/opendbc/safety/tests/test_toyota.py @@ -122,7 +122,7 @@ class TestToyotaSafetyBase(common.CarSafetyTest, common.LongitudinalAccelSafetyT self.assertFalse(self._rx(msg)) self.assertFalse(self.safety.get_controls_allowed()) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # pcm_cruise_2, bit 15 is toggle_on values = {"MAIN_ON": 1 if toggle_on else 0} diff --git a/opendbc_repo/opendbc/safety/tests/test_volkswagen_mqb.py b/opendbc_repo/opendbc/safety/tests/test_volkswagen_mqb.py index a8bb66d8..79189d3f 100755 --- a/opendbc_repo/opendbc/safety/tests/test_volkswagen_mqb.py +++ b/opendbc_repo/opendbc/safety/tests/test_volkswagen_mqb.py @@ -126,7 +126,7 @@ class TestVolkswagenMqbSafetyBase(common.CarSafetyTest, common.DriverTorqueSteer self.assertEqual(0, self.safety.get_torque_driver_max()) self.assertEqual(0, self.safety.get_torque_driver_min()) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # TSK_06, TSK_Status is the cruise state, 2 is standby return self._tsk_status_msg(False, main_switch=toggle_on) diff --git a/opendbc_repo/opendbc/safety/tests/test_volkswagen_pq.py b/opendbc_repo/opendbc/safety/tests/test_volkswagen_pq.py index 79ab1029..2f472e58 100755 --- a/opendbc_repo/opendbc/safety/tests/test_volkswagen_pq.py +++ b/opendbc_repo/opendbc/safety/tests/test_volkswagen_pq.py @@ -108,7 +108,7 @@ class TestVolkswagenPqSafetyBase(common.CarSafetyTest, common.DriverTorqueSteeri self.assertEqual(0, self.safety.get_torque_driver_max()) self.assertEqual(0, self.safety.get_torque_driver_min()) - # FrogPilot variables + # StarPilot variables def _toggle_aol(self, toggle_on): # Motor_5, GRA_Hauptschalter is the main cruise switch return self._motor_5_msg(main_switch=toggle_on) diff --git a/openpilot/frogpilot b/openpilot/frogpilot deleted file mode 120000 index 7f578691..00000000 --- a/openpilot/frogpilot +++ /dev/null @@ -1 +0,0 @@ -../frogpilot \ No newline at end of file diff --git a/openpilot/starpilot b/openpilot/starpilot new file mode 120000 index 00000000..0b215aff --- /dev/null +++ b/openpilot/starpilot @@ -0,0 +1 @@ +../starpilot \ No newline at end of file diff --git a/panda/board/obj/body_h7.bin.signed b/panda/board/obj/body_h7.bin.signed index c754022d..d33c3825 100644 Binary files a/panda/board/obj/body_h7.bin.signed and b/panda/board/obj/body_h7.bin.signed differ diff --git a/panda/board/obj/body_h7/bootstub.elf b/panda/board/obj/body_h7/bootstub.elf index 5b2abfa4..0d3c2667 100755 Binary files a/panda/board/obj/body_h7/bootstub.elf and b/panda/board/obj/body_h7/bootstub.elf differ diff --git a/panda/board/obj/body_h7/main.bin b/panda/board/obj/body_h7/main.bin index b2ab0e11..b005fb48 100755 Binary files a/panda/board/obj/body_h7/main.bin and b/panda/board/obj/body_h7/main.bin differ diff --git a/panda/board/obj/body_h7/main.elf b/panda/board/obj/body_h7/main.elf index 7a2a7a64..ac2b40f4 100755 Binary files a/panda/board/obj/body_h7/main.elf and b/panda/board/obj/body_h7/main.elf differ diff --git a/panda/board/obj/bootstub.body_h7.bin b/panda/board/obj/bootstub.body_h7.bin index c34f2ef0..7eccda5e 100755 Binary files a/panda/board/obj/bootstub.body_h7.bin and b/panda/board/obj/bootstub.body_h7.bin differ diff --git a/panda/board/obj/bootstub.panda.bin b/panda/board/obj/bootstub.panda.bin index a6a153f4..88ef9ff2 100755 Binary files a/panda/board/obj/bootstub.panda.bin and b/panda/board/obj/bootstub.panda.bin differ diff --git a/panda/board/obj/bootstub.panda_h7.bin b/panda/board/obj/bootstub.panda_h7.bin index 8fca7344..61d7943f 100755 Binary files a/panda/board/obj/bootstub.panda_h7.bin and b/panda/board/obj/bootstub.panda_h7.bin differ diff --git a/panda/board/obj/bootstub.panda_h7_remote.bin b/panda/board/obj/bootstub.panda_h7_remote.bin index 8fca7344..61d7943f 100755 Binary files a/panda/board/obj/bootstub.panda_h7_remote.bin and b/panda/board/obj/bootstub.panda_h7_remote.bin differ diff --git a/panda/board/obj/bootstub.panda_jungle_h7.bin b/panda/board/obj/bootstub.panda_jungle_h7.bin index b7d30822..893b8cee 100755 Binary files a/panda/board/obj/bootstub.panda_jungle_h7.bin and b/panda/board/obj/bootstub.panda_jungle_h7.bin differ diff --git a/panda/board/obj/bootstub.panda_remote.bin b/panda/board/obj/bootstub.panda_remote.bin index a6a153f4..88ef9ff2 100755 Binary files a/panda/board/obj/bootstub.panda_remote.bin and b/panda/board/obj/bootstub.panda_remote.bin differ diff --git a/panda/board/obj/gitversion.h b/panda/board/obj/gitversion.h index 40f8c9ae..75c19505 100644 --- a/panda/board/obj/gitversion.h +++ b/panda/board/obj/gitversion.h @@ -1,2 +1,2 @@ extern const uint8_t gitversion[19]; -const uint8_t gitversion[19] = "DEV-60a3a81d-DEBUG"; +const uint8_t gitversion[19] = "DEV-ac4cec2e-DEBUG"; diff --git a/panda/board/obj/panda.bin.signed b/panda/board/obj/panda.bin.signed index 8689490d..bb860ca9 100644 Binary files a/panda/board/obj/panda.bin.signed and b/panda/board/obj/panda.bin.signed differ diff --git a/panda/board/obj/panda/bootstub.elf b/panda/board/obj/panda/bootstub.elf index 43ac7aaf..6f20f172 100755 Binary files a/panda/board/obj/panda/bootstub.elf and b/panda/board/obj/panda/bootstub.elf differ diff --git a/panda/board/obj/panda/main.bin b/panda/board/obj/panda/main.bin index 92feb62c..5bf7fdac 100755 Binary files a/panda/board/obj/panda/main.bin and b/panda/board/obj/panda/main.bin differ diff --git a/panda/board/obj/panda/main.elf b/panda/board/obj/panda/main.elf index 9801cd8f..b3edac62 100755 Binary files a/panda/board/obj/panda/main.elf and b/panda/board/obj/panda/main.elf differ diff --git a/panda/board/obj/panda_h7.bin.signed b/panda/board/obj/panda_h7.bin.signed index e9d2bf18..a7b746e9 100644 Binary files a/panda/board/obj/panda_h7.bin.signed and b/panda/board/obj/panda_h7.bin.signed differ diff --git a/panda/board/obj/panda_h7/bootstub.elf b/panda/board/obj/panda_h7/bootstub.elf index 2a4eb0b4..be7df209 100755 Binary files a/panda/board/obj/panda_h7/bootstub.elf and b/panda/board/obj/panda_h7/bootstub.elf differ diff --git a/panda/board/obj/panda_h7/main.bin b/panda/board/obj/panda_h7/main.bin index 808133df..cacad09e 100755 Binary files a/panda/board/obj/panda_h7/main.bin and b/panda/board/obj/panda_h7/main.bin differ diff --git a/panda/board/obj/panda_h7/main.elf b/panda/board/obj/panda_h7/main.elf index 814d3085..976411f2 100755 Binary files a/panda/board/obj/panda_h7/main.elf and b/panda/board/obj/panda_h7/main.elf differ diff --git a/panda/board/obj/panda_h7_remote.bin.signed b/panda/board/obj/panda_h7_remote.bin.signed index 4abf1a23..7a63af4a 100644 Binary files a/panda/board/obj/panda_h7_remote.bin.signed and b/panda/board/obj/panda_h7_remote.bin.signed differ diff --git a/panda/board/obj/panda_h7_remote/bootstub.elf b/panda/board/obj/panda_h7_remote/bootstub.elf index e56b9b94..6b4b3cc7 100755 Binary files a/panda/board/obj/panda_h7_remote/bootstub.elf and b/panda/board/obj/panda_h7_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_h7_remote/main.bin b/panda/board/obj/panda_h7_remote/main.bin index 433f9656..0aecfe70 100755 Binary files a/panda/board/obj/panda_h7_remote/main.bin and b/panda/board/obj/panda_h7_remote/main.bin differ diff --git a/panda/board/obj/panda_h7_remote/main.elf b/panda/board/obj/panda_h7_remote/main.elf index 252915ce..ef3e89e3 100755 Binary files a/panda/board/obj/panda_h7_remote/main.elf and b/panda/board/obj/panda_h7_remote/main.elf differ diff --git a/panda/board/obj/panda_jungle_h7.bin.signed b/panda/board/obj/panda_jungle_h7.bin.signed index ac236627..5cc2f66c 100644 Binary files a/panda/board/obj/panda_jungle_h7.bin.signed and b/panda/board/obj/panda_jungle_h7.bin.signed differ diff --git a/panda/board/obj/panda_jungle_h7/bootstub.elf b/panda/board/obj/panda_jungle_h7/bootstub.elf index dacf056e..d5bfb275 100755 Binary files a/panda/board/obj/panda_jungle_h7/bootstub.elf and b/panda/board/obj/panda_jungle_h7/bootstub.elf differ diff --git a/panda/board/obj/panda_jungle_h7/main.bin b/panda/board/obj/panda_jungle_h7/main.bin index 9242cb7f..6838926c 100755 Binary files a/panda/board/obj/panda_jungle_h7/main.bin and b/panda/board/obj/panda_jungle_h7/main.bin differ diff --git a/panda/board/obj/panda_jungle_h7/main.elf b/panda/board/obj/panda_jungle_h7/main.elf index fbca5aa6..1d583d2a 100755 Binary files a/panda/board/obj/panda_jungle_h7/main.elf and b/panda/board/obj/panda_jungle_h7/main.elf differ diff --git a/panda/board/obj/panda_remote.bin.signed b/panda/board/obj/panda_remote.bin.signed index a0bcdc51..f45bc170 100644 Binary files a/panda/board/obj/panda_remote.bin.signed and b/panda/board/obj/panda_remote.bin.signed differ diff --git a/panda/board/obj/panda_remote/bootstub.elf b/panda/board/obj/panda_remote/bootstub.elf index c207d7c4..020b076d 100755 Binary files a/panda/board/obj/panda_remote/bootstub.elf and b/panda/board/obj/panda_remote/bootstub.elf differ diff --git a/panda/board/obj/panda_remote/main.bin b/panda/board/obj/panda_remote/main.bin index 128d5f0d..cb6a37fe 100755 Binary files a/panda/board/obj/panda_remote/main.bin and b/panda/board/obj/panda_remote/main.bin differ diff --git a/panda/board/obj/panda_remote/main.elf b/panda/board/obj/panda_remote/main.elf index f2e004cb..f5863202 100755 Binary files a/panda/board/obj/panda_remote/main.elf and b/panda/board/obj/panda_remote/main.elf differ diff --git a/panda/board/obj/version b/panda/board/obj/version index 7906e632..1f33886d 100644 --- a/panda/board/obj/version +++ b/panda/board/obj/version @@ -1 +1 @@ -DEV-60a3a81d-DEBUG \ No newline at end of file +DEV-ac4cec2e-DEBUG \ No newline at end of file diff --git a/scripts/host_tool_runner.sh b/scripts/host_tool_runner.sh index 0b6d4e00..91af81da 100755 --- a/scripts/host_tool_runner.sh +++ b/scripts/host_tool_runner.sh @@ -319,7 +319,7 @@ setup_build_env() { } export_workdir_pythonpath() { - export PYTHONPATH="${WORK_DIR}:${WORK_DIR}/frogpilot/third_party" + export PYTHONPATH="${WORK_DIR}:${WORK_DIR}/starpilot/third_party" local repo_dir="" for repo_dir in "${WORK_DIR}"/*_repo; do [[ -d "${repo_dir}" ]] && export PYTHONPATH="${PYTHONPATH}:${repo_dir}" diff --git a/scripts/laptop_device_build.sh b/scripts/laptop_device_build.sh index 31509404..8dae02bb 100755 --- a/scripts/laptop_device_build.sh +++ b/scripts/laptop_device_build.sh @@ -237,8 +237,8 @@ scrub_mixed_arch_artifacts() { "${ROOT_DIR}/common/transformations/transformations.so" \ "${ROOT_DIR}/selfdrive/modeld/models/commonmodel_pyx.o" \ "${ROOT_DIR}/selfdrive/modeld/models/commonmodel_pyx.so" \ - "${ROOT_DIR}/frogpilot/tinygrad_modeld/models/commonmodel_pyx.o" \ - "${ROOT_DIR}/frogpilot/tinygrad_modeld/models/commonmodel_pyx.so" + "${ROOT_DIR}/starpilot/tinygrad_modeld/models/commonmodel_pyx.o" \ + "${ROOT_DIR}/starpilot/tinygrad_modeld/models/commonmodel_pyx.so" } sync_sysroot_from_device() { diff --git a/scripts/launch_ui_c4_desktop.sh b/scripts/launch_ui_c4_desktop.sh index 18c71a15..2c9e0194 100755 --- a/scripts/launch_ui_c4_desktop.sh +++ b/scripts/launch_ui_c4_desktop.sh @@ -44,7 +44,7 @@ if [[ ! -x "${PY_BIN}" ]]; then fi export PATH="${ROOT_DIR}/.venv/bin:${PATH}" -export PYTHONPATH="${ROOT_DIR}:${ROOT_DIR}/frogpilot/third_party" +export PYTHONPATH="${ROOT_DIR}:${ROOT_DIR}/starpilot/third_party" for d in "${ROOT_DIR}"/*_repo; do [[ -d "$d" ]] && export PYTHONPATH="${PYTHONPATH}:$d"; done [[ -d "${ROOT_DIR}/third_party/acados" ]] && export PYTHONPATH="${PYTHONPATH}:${ROOT_DIR}/third_party/acados" export BIG=0 @@ -53,10 +53,10 @@ export SIMULATION=1 export SKIP_FW_QUERY=1 export USE_WEBCAM=1 -backup_dir="$(mktemp -d /tmp/frogpilot_c4_ui_backup.XXXXXX)" +backup_dir="$(mktemp -d /tmp/starpilot_c4_ui_backup.XXXXXX)" backup_manifest="${backup_dir}/.artifact_manifest" -PRE_TRACKED_DIRTY="$(mktemp /tmp/frogpilot_c4_pretracked.XXXXXX)" -POST_TRACKED_DIRTY="$(mktemp /tmp/frogpilot_c4_posttracked.XXXXXX)" +PRE_TRACKED_DIRTY="$(mktemp /tmp/starpilot_c4_pretracked.XXXXXX)" +POST_TRACKED_DIRTY="$(mktemp /tmp/starpilot_c4_posttracked.XXXXXX)" FAKE_WIFI_PID="" runtime_artifacts=( diff --git a/scripts/launch_ui_desktop.sh b/scripts/launch_ui_desktop.sh index b8f260fc..c05b5e7e 100755 --- a/scripts/launch_ui_desktop.sh +++ b/scripts/launch_ui_desktop.sh @@ -31,9 +31,9 @@ if [[ "$(uname -s)" == "Darwin" ]]; then OS_EXT="macos" fi HOST_UI="${ROOT_DIR}/selfdrive/ui/ui.${OS_EXT}" -PRE_TRACKED_DIRTY="$(mktemp /tmp/frogpilot_c3_pretracked.XXXXXX)" -POST_TRACKED_DIRTY="$(mktemp /tmp/frogpilot_c3_posttracked.XXXXXX)" -BACKUP_DIR="$(mktemp -d /tmp/frogpilot_c3_backup.XXXXXX)" +PRE_TRACKED_DIRTY="$(mktemp /tmp/starpilot_c3_pretracked.XXXXXX)" +POST_TRACKED_DIRTY="$(mktemp /tmp/starpilot_c3_posttracked.XXXXXX)" +BACKUP_DIR="$(mktemp -d /tmp/starpilot_c3_backup.XXXXXX)" BACKUP_MANIFEST="${BACKUP_DIR}/.artifact_manifest" FAKE_WIFI_PID="" @@ -181,7 +181,7 @@ prepare_host_artifacts() { remove_if_elf "msgq_repo/msgq/visionipc/visionipc_pyx.so" purge_objects "${ROOT_DIR}/selfdrive/ui" - purge_objects "${ROOT_DIR}/frogpilot/ui" + purge_objects "${ROOT_DIR}/starpilot/ui" rm -f "${ROOT_DIR}/selfdrive/ui/ui" } @@ -206,7 +206,7 @@ unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH CPPFLAGS CFLAGS CXXFLAGS LDFLAGS prepare_host_artifacts -export PYTHONPATH="${ROOT_DIR}:${ROOT_DIR}/frogpilot/third_party" +export PYTHONPATH="${ROOT_DIR}:${ROOT_DIR}/starpilot/third_party" for d in "${ROOT_DIR}"/*_repo; do [[ -d "$d" ]] && export PYTHONPATH="${PYTHONPATH}:$d"; done [[ -d "${ROOT_DIR}/third_party/acados" ]] && export PYTHONPATH="${PYTHONPATH}:${ROOT_DIR}/third_party/acados" diff --git a/scripts/launch_ui_raybig_desktop.sh b/scripts/launch_ui_raybig_desktop.sh index b2db0699..30657d0f 100755 --- a/scripts/launch_ui_raybig_desktop.sh +++ b/scripts/launch_ui_raybig_desktop.sh @@ -44,7 +44,7 @@ if [[ ! -x "${PY_BIN}" ]]; then fi export PATH="${ROOT_DIR}/.venv/bin:${PATH}" -export PYTHONPATH="${ROOT_DIR}:${ROOT_DIR}/frogpilot/third_party" +export PYTHONPATH="${ROOT_DIR}:${ROOT_DIR}/starpilot/third_party" for d in "${ROOT_DIR}"/*_repo; do [[ -d "$d" ]] && export PYTHONPATH="${PYTHONPATH}:$d"; done [[ -d "${ROOT_DIR}/third_party/acados" ]] && export PYTHONPATH="${PYTHONPATH}:${ROOT_DIR}/third_party/acados" export BIG=1 @@ -53,10 +53,10 @@ export SIMULATION=1 export SKIP_FW_QUERY=1 export USE_WEBCAM=1 -backup_dir="$(mktemp -d /tmp/frogpilot_raybig_ui_backup.XXXXXX)" +backup_dir="$(mktemp -d /tmp/starpilot_raybig_ui_backup.XXXXXX)" backup_manifest="${backup_dir}/.artifact_manifest" -PRE_TRACKED_DIRTY="$(mktemp /tmp/frogpilot_raybig_pretracked.XXXXXX)" -POST_TRACKED_DIRTY="$(mktemp /tmp/frogpilot_raybig_posttracked.XXXXXX)" +PRE_TRACKED_DIRTY="$(mktemp /tmp/starpilot_raybig_pretracked.XXXXXX)" +POST_TRACKED_DIRTY="$(mktemp /tmp/starpilot_raybig_posttracked.XXXXXX)" FAKE_WIFI_PID="" runtime_artifacts=( diff --git a/scripts/starpilot_build_flow.sh b/scripts/starpilot_build_flow.sh index 732e1031..fec77f2f 100755 --- a/scripts/starpilot_build_flow.sh +++ b/scripts/starpilot_build_flow.sh @@ -121,13 +121,13 @@ build_mac() { system/timed.py \ common/spinner.py \ common/text_window.py \ - frogpilot/system/frogpilot_stats.py + starpilot/system/starpilot_stats.py python -m compileall -q \ selfdrive/ui \ system/ui \ - frogpilot/system/the_pond \ - frogpilot/system/galaxy + starpilot/system/the_pond \ + starpilot/system/galaxy SP_DISABLE_AUTO_DEVICE_SCONS=1 scons -j"${jobs}" selfdrive/ui/ui diff --git a/selfdrive/car/car_specific.py b/selfdrive/car/car_specific.py index 0b1754bd..44ff06e3 100644 --- a/selfdrive/car/car_specific.py +++ b/selfdrive/car/car_specific.py @@ -18,7 +18,7 @@ class MockCarState: def __init__(self): self.sm = messaging.SubMaster(['gpsLocation', 'gpsLocationExternal']) - def update(self, CS: car.CarState, FPCS: custom.FrogPilotCarState): + def update(self, CS: car.CarState, FPCS: custom.StarPilotCarState): self.sm.update(0) gps_sock = 'gpsLocationExternal' if self.sm.recv_frame['gpsLocationExternal'] > 1 else 'gpsLocation' diff --git a/selfdrive/car/card.py b/selfdrive/car/card.py index e201e940..f2a34de8 100644 --- a/selfdrive/car/card.py +++ b/selfdrive/car/card.py @@ -22,8 +22,8 @@ from openpilot.selfdrive.pandad import can_capnp_to_list, can_list_to_can_capnp from openpilot.selfdrive.car.cruise import VCruiseHelper from openpilot.selfdrive.car.car_specific import MockCarState -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles, update_frogpilot_toggles -from openpilot.frogpilot.controls.frogpilot_card import FrogPilotCard +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles, update_starpilot_toggles +from openpilot.starpilot.controls.starpilot_card import StarPilotCard REPLAY = "REPLAY" in os.environ @@ -67,8 +67,8 @@ class Car: RI: RadarInterfaceBase CP: car.CarParams - # FrogPilot variables - FPCP: custom.FrogPilotCarParams + # StarPilot variables + FPCP: custom.StarPilotCarParams def __init__(self, CI=None, RI=None) -> None: self.can_sock = messaging.sub_sock('can', timeout=20) @@ -106,14 +106,14 @@ class Car: with car.CarParams.from_bytes(cached_params_raw) as _cached_params: cached_params = _cached_params - self.CI = get_car(*self.can_callbacks, obd_callback(self.params), alpha_long_allowed, is_release, self.params, num_pandas, cached_params, get_frogpilot_toggles()) + self.CI = get_car(*self.can_callbacks, obd_callback(self.params), alpha_long_allowed, is_release, self.params, num_pandas, cached_params, get_starpilot_toggles()) self.RI = interfaces[self.CI.CP.carFingerprint].RadarInterface(self.CI.CP) self.CP = self.CI.CP # continue onto next fingerprinting step in pandad self.params.put_bool("FirmwareQueryDone", True) - # FrogPilot variables + # StarPilot variables self.FPCP = self.CI.FPCP else: self.CI, self.CP, self.FPCP = CI, CI.CP, CI.FPCP @@ -172,24 +172,24 @@ class Car: # OPGM variables self.resume_prev_button = False - # FrogPilot variables - self.frogpilot_toggles = get_frogpilot_toggles() + # StarPilot variables + self.starpilot_toggles = get_starpilot_toggles() - if self.frogpilot_toggles.always_on_lateral: + if self.starpilot_toggles.always_on_lateral: self.FPCP.alternativeExperience |= ALTERNATIVE_EXPERIENCE.ALWAYS_ON_LATERAL - if getattr(self.frogpilot_toggles, "remap_cancel_to_distance", False): + if getattr(self.starpilot_toggles, "remap_cancel_to_distance", False): self.FPCP.alternativeExperience |= ALTERNATIVE_EXPERIENCE.GM_REMAP_CANCEL_TO_DISTANCE fpcp_bytes = self.FPCP.to_bytes() - self.params.put("FrogPilotCarParams", fpcp_bytes) - self.params.put_nonblocking("FrogPilotCarParamsPersistent", fpcp_bytes) + self.params.put("StarPilotCarParams", fpcp_bytes) + self.params.put_nonblocking("StarPilotCarParamsPersistent", fpcp_bytes) - update_frogpilot_toggles() + update_starpilot_toggles() - self.frogpilot_card = FrogPilotCard(self.CP, self.FPCP) + self.starpilot_card = StarPilotCard(self.CP, self.FPCP) - self.sm = self.sm.extend(['frogpilotOnroadEvents', 'frogpilotPlan', 'frogpilotSelfdriveState', 'liveCalibration', 'selfdriveState']) - self.pm = self.pm.extend(['frogpilotCarState']) + self.sm = self.sm.extend(['starpilotOnroadEvents', 'starpilotPlan', 'starpilotSelfdriveState', 'liveCalibration', 'selfdriveState']) + self.pm = self.pm.extend(['starpilotCarState']) def state_update(self) -> tuple[car.CarState, structs.RadarDataT | None]: """carState update loop, driven by can""" @@ -198,7 +198,7 @@ class Car: can_list = can_capnp_to_list(can_strs) # Update carState from CAN - CS, FPCS = self.CI.update(can_list, self.frogpilot_toggles) + CS, FPCS = self.CI.update(can_list, self.starpilot_toggles) if self.CP.brand == 'mock': CS, FPCS = self.mock_carstate.update(CS, FPCS) @@ -216,10 +216,10 @@ class Car: if can_rcv_valid and REPLAY: self.can_log_mono_time = messaging.log_from_bytes(can_strs[0]).logMonoTime - self.v_cruise_helper.update_v_cruise(CS, self.sm['carControl'].enabled, self.is_metric, self.frogpilot_toggles) + self.v_cruise_helper.update_v_cruise(CS, self.sm['carControl'].enabled, self.is_metric, self.starpilot_toggles) if self.sm['carControl'].enabled and not self.CC_prev.enabled: # Use CarState w/ buttons from the step selfdrived enables on - self.v_cruise_helper.initialize_v_cruise(self.CS_prev, self.experimental_mode, self.resume_prev_button, self.frogpilot_toggles) + self.v_cruise_helper.initialize_v_cruise(self.CS_prev, self.experimental_mode, self.resume_prev_button, self.starpilot_toggles) # TODO: mirror the carState.cruiseState struct? CS.vCruise = float(self.v_cruise_helper.v_cruise_kph) @@ -231,12 +231,12 @@ class Car: elif any(be.type in (ButtonType.decelCruise, ButtonType.setCruise) for be in CS.buttonEvents): self.resume_prev_button = False - # FrogPilot variables - FPCS = self.frogpilot_card.update(CS, FPCS, self.sm, self.frogpilot_toggles) + # StarPilot variables + FPCS = self.starpilot_card.update(CS, FPCS, self.sm, self.starpilot_toggles) return CS, RD, FPCS - def state_publish(self, CS: car.CarState, RD: structs.RadarDataT | None, FPCS: custom.FrogPilotCarState): + def state_publish(self, CS: car.CarState, RD: structs.RadarDataT | None, FPCS: custom.StarPilotCarState): """carState and carParams publish loop""" # carParams - logged every 50 seconds (> 1 per segment) @@ -266,11 +266,11 @@ class Car: tracks_msg.liveTracks = RD self.pm.send('liveTracks', tracks_msg) - # FrogPilot variables - fpcs_send = messaging.new_message('frogpilotCarState') + # StarPilot variables + fpcs_send = messaging.new_message('starpilotCarState') fpcs_send.valid = CS.canValid - fpcs_send.frogpilotCarState = FPCS - self.pm.send('frogpilotCarState', fpcs_send) + fpcs_send.starpilotCarState = FPCS + self.pm.send('starpilotCarState', fpcs_send) def controls_update(self, CS: car.CarState, CC: car.CarControl): """control update loop, driven by carControl""" @@ -285,7 +285,7 @@ class Car: if self.sm.all_alive(['carControl']): # send car controls over can now_nanos = self.can_log_mono_time if REPLAY else int(time.monotonic() * 1e9) - self.last_actuators_output, can_sends = self.CI.apply(CC, now_nanos, self.frogpilot_toggles) + self.last_actuators_output, can_sends = self.CI.apply(CC, now_nanos, self.starpilot_toggles) self.pm.send('sendcan', can_list_to_can_capnp(can_sends, msgtype='sendcan', valid=CS.canValid)) self.CC_prev = CC @@ -303,10 +303,10 @@ class Car: self.initialized_prev = initialized self.CS_prev = CS - # FrogPilot variables + # StarPilot variables self.CI.CS.CC = self.sm['carControl'] - self.frogpilot_toggles = get_frogpilot_toggles(self.sm) + self.starpilot_toggles = get_starpilot_toggles(self.sm) def params_thread(self, evt): while not evt.is_set(): diff --git a/selfdrive/car/cruise.py b/selfdrive/car/cruise.py index a7e828e6..1ef95bb1 100644 --- a/selfdrive/car/cruise.py +++ b/selfdrive/car/cruise.py @@ -47,13 +47,13 @@ class VCruiseHelper: def v_cruise_initialized(self): return self.v_cruise_kph != V_CRUISE_UNSET - def update_v_cruise(self, CS, enabled, is_metric, frogpilot_toggles): + def update_v_cruise(self, CS, enabled, is_metric, starpilot_toggles): self.v_cruise_kph_last = self.v_cruise_kph if CS.cruiseState.available: if self.gm_cc_only or not self.CP.pcmCruise: # if stock cruise is completely disabled, then we can use our own set speed logic - self._update_v_cruise_non_pcm(CS, enabled, is_metric, frogpilot_toggles) + self._update_v_cruise_non_pcm(CS, enabled, is_metric, starpilot_toggles) self.v_cruise_cluster_kph = self.v_cruise_kph self.update_button_timers(CS, enabled) else: @@ -69,7 +69,7 @@ class VCruiseHelper: self.v_cruise_kph = V_CRUISE_UNSET self.v_cruise_cluster_kph = V_CRUISE_UNSET - def _update_v_cruise_non_pcm(self, CS, enabled, is_metric, frogpilot_toggles): + def _update_v_cruise_non_pcm(self, CS, enabled, is_metric, starpilot_toggles): # handle button presses. TODO: this should be in state_control, but a decelCruise press # would have the effect of both enabling and changing speed is checked after the state transition if not enabled: @@ -105,7 +105,7 @@ class VCruiseHelper: if not self.button_change_states[button_type]["enabled"]: return - v_cruise_delta_interval = frogpilot_toggles.cruise_increase_long if long_press else frogpilot_toggles.cruise_increase + v_cruise_delta_interval = starpilot_toggles.cruise_increase_long if long_press else starpilot_toggles.cruise_increase v_cruise_delta = v_cruise_delta * v_cruise_delta_interval if v_cruise_delta_interval % 5 == 0 and self.v_cruise_kph % v_cruise_delta != 0: # partial interval self.v_cruise_kph = CRUISE_NEAREST_FUNC[button_type](self.v_cruise_kph / v_cruise_delta) * v_cruise_delta @@ -130,7 +130,7 @@ class VCruiseHelper: self.button_timers[b.type.raw] = 1 if b.pressed else 0 self.button_change_states[b.type.raw] = {"standstill": CS.cruiseState.standstill, "enabled": enabled} - def initialize_v_cruise(self, CS, experimental_mode: bool, resume_prev_button: bool, frogpilot_toggles: SimpleNamespace) -> None: + def initialize_v_cruise(self, CS, experimental_mode: bool, resume_prev_button: bool, starpilot_toggles: SimpleNamespace) -> None: # initializing is handled by the PCM if self.CP.pcmCruise and not self.gm_cc_only: return diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index 64311024..5149e82e 100644 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -20,8 +20,8 @@ from openpilot.selfdrive.controls.lib.longcontrol import LongControl from openpilot.selfdrive.modeld.modeld import LAT_SMOOTH_SECONDS from openpilot.selfdrive.locationd.helpers import PoseCalibrator, Pose -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles -from openpilot.frogpilot.controls.lib.neural_network_feedforward import LatControlNNFF +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles +from openpilot.starpilot.controls.lib.neural_network_feedforward import LatControlNNFF State = log.SelfdriveState.OpenpilotState LaneChangeState = log.LaneChangeState @@ -35,7 +35,7 @@ class Controls: self.params = Params() cloudlog.info("controlsd is waiting for CarParams") self.CP = messaging.log_from_bytes(self.params.get("CarParams", block=True), car.CarParams) - self.FPCP = messaging.log_from_bytes(self.params.get("FrogPilotCarParams", block=True), custom.FrogPilotCarParams) + self.FPCP = messaging.log_from_bytes(self.params.get("StarPilotCarParams", block=True), custom.StarPilotCarParams) cloudlog.info("controlsd got CarParams") self.CI = interfaces[self.CP.carFingerprint](self.CP, self.FPCP) @@ -62,12 +62,12 @@ class Controls: elif self.CP.lateralTuning.which() == 'torque': self.LaC = LatControlTorque(self.CP, self.CI, DT_CTRL) - # FrogPilot variables - self.sm = self.sm.extend(['liveDelay', 'frogpilotCarState', 'frogpilotPlan']) + # StarPilot variables + self.sm = self.sm.extend(['liveDelay', 'starpilotCarState', 'starpilotPlan']) - self.frogpilot_toggles = get_frogpilot_toggles() + self.starpilot_toggles = get_starpilot_toggles() - if self.CP.lateralTuning.which() == "torque" and (self.frogpilot_toggles.nnff or self.frogpilot_toggles.nnff_lite): + if self.CP.lateralTuning.which() == "torque" and (self.starpilot_toggles.nnff or self.starpilot_toggles.nnff_lite): self.LaC = LatControlNNFF(self.CP, self.CI, DT_CTRL) def update(self): @@ -78,14 +78,14 @@ class Controls: device_pose = Pose.from_live_pose(self.sm['livePose']) self.calibrated_pose = self.pose_calibrator.build_calibrated_pose(device_pose) - # FrogPilot variables + # StarPilot variables if hasattr(self.LaC, "pid") and self.CP.lateralTuning.which() != "pid": - self.LaC.pid._k_p = self.frogpilot_toggles.steerKp + self.LaC.pid._k_p = self.starpilot_toggles.steerKp if self.sm.updated['liveDelay'] and hasattr(self.LaC, "update_live_delay"): self.LaC.update_live_delay(self.sm['liveDelay'].lateralDelay) - self.frogpilot_toggles = get_frogpilot_toggles(self.sm) + self.starpilot_toggles = get_starpilot_toggles(self.sm) def state_control(self): CS = self.sm['carState'] @@ -102,7 +102,7 @@ class Controls: # Update Torque Params if self.CP.lateralTuning.which() == 'torque': torque_params = self.sm['liveTorqueParameters'] - if self.sm.all_checks(['liveTorqueParameters']) and (torque_params.useParams or self.frogpilot_toggles.force_auto_tune): + if self.sm.all_checks(['liveTorqueParameters']) and (torque_params.useParams or self.starpilot_toggles.force_auto_tune): self.LaC.update_live_torque_params(torque_params.latAccelFactorFiltered, torque_params.latAccelOffsetFiltered, torque_params.frictionCoefficientFiltered) @@ -114,9 +114,9 @@ class Controls: # Check which actuators can be enabled standstill = abs(CS.vEgo) <= max(self.CP.minSteerSpeed, 0.3) or CS.standstill - CC.latActive = (self.sm['selfdriveState'].active or self.sm['frogpilotCarState'].alwaysOnLateralEnabled) and not CS.steerFaultTemporary and not CS.steerFaultPermanent and \ - (not standstill or self.CP.steerAtStandstill) and self.sm['frogpilotPlan'].lateralCheck - CC.longActive = CC.enabled and not any(e.overrideLongitudinal for e in self.sm['onroadEvents']) and not self.sm['frogpilotCarState'].pauseLongitudinal and self.CP.openpilotLongitudinalControl + CC.latActive = (self.sm['selfdriveState'].active or self.sm['starpilotCarState'].alwaysOnLateralEnabled) and not CS.steerFaultTemporary and not CS.steerFaultPermanent and \ + (not standstill or self.CP.steerAtStandstill) and self.sm['starpilotPlan'].lateralCheck + CC.longActive = CC.enabled and not any(e.overrideLongitudinal for e in self.sm['onroadEvents']) and not self.sm['starpilotCarState'].pauseLongitudinal and self.CP.openpilotLongitudinalControl actuators = CC.actuators actuators.longControlState = self.LoC.long_control_state @@ -134,7 +134,7 @@ class Controls: # accel PID loop pid_accel_limits = self.CI.get_pid_accel_limits(self.CP, CS.vEgo, CS.vCruise * CV.KPH_TO_MS) self.LoC.experimental_mode = bool(self.sm['selfdriveState'].experimentalMode) - actuators.accel = float(min(self.LoC.update(CC.longActive, CS, long_plan.aTarget, long_plan.shouldStop, pid_accel_limits, self.frogpilot_toggles), self.frogpilot_toggles.max_desired_acceleration)) + actuators.accel = float(min(self.LoC.update(CC.longActive, CS, long_plan.aTarget, long_plan.shouldStop, pid_accel_limits, self.starpilot_toggles), self.starpilot_toggles.max_desired_acceleration)) # Steering PID loop and lateral MPC # Reset desired curvature to current to avoid violating the limits on engage @@ -148,7 +148,7 @@ class Controls: curvature_limited, lat_delay, self.calibrated_pose, self.sm['modelV2'], - self.frogpilot_toggles) + self.starpilot_toggles) actuators.torque = float(steer) actuators.steeringAngleDeg = float(steeringAngleDeg) @@ -221,7 +221,7 @@ class Controls: cs.uiAccelCmd = float(self.LoC.pid.i) cs.ufAccelCmd = float(self.LoC.pid.f) cs.forceDecel = bool((self.sm['driverMonitoringState'].awarenessStatus < 0.) or - (self.sm['selfdriveState'].state == State.softDisabling) or self.sm["frogpilotCarState"].forceCoast) + (self.sm['selfdriveState'].state == State.softDisabling) or self.sm["starpilotCarState"].forceCoast) lat_tuning = self.CP.lateralTuning.which() if self.CP.steerControlType == car.CarParams.SteerControlType.angle: diff --git a/selfdrive/controls/lib/desire_helper.py b/selfdrive/controls/lib/desire_helper.py index 9dd3ae5f..cc984be9 100644 --- a/selfdrive/controls/lib/desire_helper.py +++ b/selfdrive/controls/lib/desire_helper.py @@ -29,7 +29,7 @@ DESIRES = { }, } -# FrogPilot variables +# StarPilot variables TurnDirection = log.Desire TURN_DESIRES = { @@ -49,7 +49,7 @@ class DesireHelper: self.prev_one_blinker = False self.desire = log.Desire.none - # FrogPilot variables + # StarPilot variables self.lane_change_completed = False self.lane_change_wait_timer = 0.0 @@ -58,12 +58,12 @@ class DesireHelper: def get_lane_change_direction(CS): return LaneChangeDirection.left if CS.leftBlinker else LaneChangeDirection.right - def update(self, carstate, lateral_active, lane_change_prob, frogpilotPlan, frogpilot_toggles): + def update(self, carstate, lateral_active, lane_change_prob, starpilotPlan, starpilot_toggles): v_ego = carstate.vEgo one_blinker = carstate.leftBlinker != carstate.rightBlinker - below_lane_change_speed = v_ego < frogpilot_toggles.minimum_lane_change_speed + below_lane_change_speed = v_ego < starpilot_toggles.minimum_lane_change_speed - if not lateral_active or self.lane_change_timer > LANE_CHANGE_TIME_MAX or not frogpilot_toggles.lane_changes: + if not lateral_active or self.lane_change_timer > LANE_CHANGE_TIME_MAX or not starpilot_toggles.lane_changes: self.lane_change_state = LaneChangeState.off self.lane_change_direction = LaneChangeDirection.none else: @@ -86,15 +86,15 @@ class DesireHelper: blindspot_detected = ((carstate.leftBlindspot and self.lane_change_direction == LaneChangeDirection.left) or (carstate.rightBlindspot and self.lane_change_direction == LaneChangeDirection.right)) - # FrogPilot variables + # StarPilot variables if torque_applied: - self.lane_change_wait_timer = frogpilot_toggles.lane_change_delay + self.lane_change_wait_timer = starpilot_toggles.lane_change_delay else: - torque_applied |= frogpilot_toggles.nudgeless - torque_applied &= self.lane_change_wait_timer >= frogpilot_toggles.lane_change_delay + torque_applied |= starpilot_toggles.nudgeless + torque_applied &= self.lane_change_wait_timer >= starpilot_toggles.lane_change_delay - desired_lane_width = frogpilotPlan.laneWidthLeft if self.lane_change_direction == LaneChangeDirection.left else frogpilotPlan.laneWidthRight - torque_applied &= desired_lane_width >= frogpilot_toggles.lane_detection_width + desired_lane_width = starpilotPlan.laneWidthLeft if self.lane_change_direction == LaneChangeDirection.left else starpilotPlan.laneWidthRight + torque_applied &= desired_lane_width >= starpilot_toggles.lane_detection_width if not one_blinker or below_lane_change_speed or self.lane_change_completed: self.lane_change_state = LaneChangeState.off @@ -102,12 +102,12 @@ class DesireHelper: elif torque_applied and not blindspot_detected: self.lane_change_state = LaneChangeState.laneChangeStarting - # FrogPilot variables - self.lane_change_completed = frogpilot_toggles.one_lane_change + # StarPilot variables + self.lane_change_completed = starpilot_toggles.one_lane_change self.lane_change_wait_timer = 0.0 - # FrogPilot variables + # StarPilot variables self.lane_change_wait_timer += DT_MDL # LaneChangeState.laneChangeStarting @@ -138,7 +138,7 @@ class DesireHelper: self.prev_one_blinker = one_blinker - if lateral_active and one_blinker and below_lane_change_speed and not carstate.standstill and frogpilot_toggles.use_turn_desires: + if lateral_active and one_blinker and below_lane_change_speed and not carstate.standstill and starpilot_toggles.use_turn_desires: self.turn_direction = TurnDirection.turnLeft if carstate.leftBlinker else TurnDirection.turnRight self.desire = TURN_DESIRES[self.turn_direction] else: @@ -155,7 +155,7 @@ class DesireHelper: elif self.desire in (log.Desire.keepLeft, log.Desire.keepRight): self.desire = log.Desire.none - # FrogPilot variables + # StarPilot variables if not one_blinker: self.lane_change_completed = False diff --git a/selfdrive/controls/lib/latcontrol.py b/selfdrive/controls/lib/latcontrol.py index 36764b23..ed6bafe0 100644 --- a/selfdrive/controls/lib/latcontrol.py +++ b/selfdrive/controls/lib/latcontrol.py @@ -17,7 +17,7 @@ class LatControl(ABC): self.steer_max = 1.0 @abstractmethod - def update(self, active: bool, CS, VM, params, steer_limited_by_safety: bool, desired_curvature: float, curvature_limited: bool, lat_delay: float, calibrated_pose: Pose, model_data: capnp._DynamicStructReader, frogpilot_toggles: SimpleNamespace): + def update(self, active: bool, CS, VM, params, steer_limited_by_safety: bool, desired_curvature: float, curvature_limited: bool, lat_delay: float, calibrated_pose: Pose, model_data: capnp._DynamicStructReader, starpilot_toggles: SimpleNamespace): pass def reset(self): diff --git a/selfdrive/controls/lib/latcontrol_angle.py b/selfdrive/controls/lib/latcontrol_angle.py index 00bbba84..6665b7c7 100644 --- a/selfdrive/controls/lib/latcontrol_angle.py +++ b/selfdrive/controls/lib/latcontrol_angle.py @@ -13,7 +13,7 @@ class LatControlAngle(LatControl): self.sat_check_min_speed = 5. self.use_steer_limited_by_safety = CP.brand == "tesla" - def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvature, curvature_limited, lat_delay, calibrated_pose, model_data, frogpilot_toggles): + def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvature, curvature_limited, lat_delay, calibrated_pose, model_data, starpilot_toggles): angle_log = log.ControlsState.LateralAngleState.new_message() if not active: diff --git a/selfdrive/controls/lib/latcontrol_pid.py b/selfdrive/controls/lib/latcontrol_pid.py index 522c09cf..85bffee5 100644 --- a/selfdrive/controls/lib/latcontrol_pid.py +++ b/selfdrive/controls/lib/latcontrol_pid.py @@ -14,7 +14,7 @@ class LatControlPID(LatControl): self.ff_factor = CP.lateralTuning.pid.kf self.get_steer_feedforward = CI.get_steer_feedforward_function() - def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvature, curvature_limited, lat_delay, calibrated_pose, model_data, frogpilot_toggles): + def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvature, curvature_limited, lat_delay, calibrated_pose, model_data, starpilot_toggles): pid_log = log.ControlsState.LateralPIDState.new_message() pid_log.steeringAngleDeg = float(CS.steeringAngleDeg) pid_log.steeringRateDeg = float(CS.steeringRateDeg) diff --git a/selfdrive/controls/lib/latcontrol_torque.py b/selfdrive/controls/lib/latcontrol_torque.py index 50e22cb2..f4467ed2 100644 --- a/selfdrive/controls/lib/latcontrol_torque.py +++ b/selfdrive/controls/lib/latcontrol_torque.py @@ -115,7 +115,7 @@ class LatControlTorque(LatControl): self.pid.set_limits(self.lateral_accel_from_torque(self.steer_max, self.torque_params), self.lateral_accel_from_torque(-self.steer_max, self.torque_params)) - def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvature, curvature_limited, lat_delay, calibrated_pose, model_data, frogpilot_toggles): + def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvature, curvature_limited, lat_delay, calibrated_pose, model_data, starpilot_toggles): pid_log = log.ControlsState.LateralTorqueState.new_message() pid_log.version = VERSION if not active: diff --git a/selfdrive/controls/lib/longcontrol.py b/selfdrive/controls/lib/longcontrol.py index c15d9f66..a93823a8 100644 --- a/selfdrive/controls/lib/longcontrol.py +++ b/selfdrive/controls/lib/longcontrol.py @@ -24,14 +24,14 @@ def apply_deadzone(error, deadzone): def long_control_state_trans(CP, active, long_control_state, v_ego, - should_stop, brake_pressed, cruise_standstill, frogpilot_toggles): + should_stop, brake_pressed, cruise_standstill, starpilot_toggles): # Ignore cruise standstill if car has a gas interceptor cruise_standstill = cruise_standstill and not CP.enableGasInterceptorDEPRECATED stopping_condition = should_stop starting_condition = (not should_stop and not cruise_standstill and not brake_pressed) - started_condition = v_ego > frogpilot_toggles.vEgoStarting + started_condition = v_ego > starpilot_toggles.vEgoStarting if not active: long_control_state = LongCtrlState.off @@ -60,20 +60,20 @@ def long_control_state_trans(CP, active, long_control_state, v_ego, return long_control_state def long_control_state_trans_old_long(CP, active, long_control_state, v_ego, v_target, - v_target_1sec, brake_pressed, cruise_standstill, frogpilot_toggles): + v_target_1sec, brake_pressed, cruise_standstill, starpilot_toggles): accelerating = v_target_1sec > v_target - planned_stop = (v_target < frogpilot_toggles.vEgoStopping and - v_target_1sec < frogpilot_toggles.vEgoStopping and + planned_stop = (v_target < starpilot_toggles.vEgoStopping and + v_target_1sec < starpilot_toggles.vEgoStopping and not accelerating) - stay_stopped = (v_ego < frogpilot_toggles.vEgoStopping and + stay_stopped = (v_ego < starpilot_toggles.vEgoStopping and (brake_pressed or cruise_standstill)) stopping_condition = planned_stop or stay_stopped - starting_condition = (v_target_1sec > frogpilot_toggles.vEgoStarting and + starting_condition = (v_target_1sec > starpilot_toggles.vEgoStarting and accelerating and not cruise_standstill and not brake_pressed) - started_condition = v_ego > frogpilot_toggles.vEgoStarting + started_condition = v_ego > starpilot_toggles.vEgoStarting if not active: long_control_state = LongCtrlState.off @@ -173,27 +173,27 @@ class LongControl: return self.integrator_hold_frames > 0 or sat_pushing_lower or sat_pushing_upper - def update(self, active, CS, a_target, should_stop, accel_limits, frogpilot_toggles): + def update(self, active, CS, a_target, should_stop, accel_limits, starpilot_toggles): """Update longitudinal control. This updates the state machine and runs a PID loop""" self.pid.neg_limit = accel_limits[0] self.pid.pos_limit = accel_limits[1] self.long_control_state = long_control_state_trans(self.CP, active, self.long_control_state, CS.vEgo, should_stop, CS.brakePressed, - CS.cruiseState.standstill, frogpilot_toggles) + CS.cruiseState.standstill, starpilot_toggles) if self.long_control_state == LongCtrlState.off: self.reset() output_accel = 0. elif self.long_control_state == LongCtrlState.stopping: output_accel = self.last_output_accel - if output_accel > frogpilot_toggles.stopAccel: + if output_accel > starpilot_toggles.stopAccel: output_accel = min(output_accel, 0.0) - output_accel -= frogpilot_toggles.stoppingDecelRate * DT_CTRL + output_accel -= starpilot_toggles.stoppingDecelRate * DT_CTRL self.reset() elif self.long_control_state == LongCtrlState.starting: - output_accel = (a_target if frogpilot_toggles.human_acceleration else frogpilot_toggles.startAccel) + output_accel = (a_target if starpilot_toggles.human_acceleration else starpilot_toggles.startAccel) self.reset() else: # LongCtrlState.pid @@ -229,7 +229,7 @@ class LongControl: self.last_a_target = 0.0 self.integrator_hold_frames = 0 - def update_old_long(self, active, CS, long_plan, accel_limits, t_since_plan, frogpilot_toggles): + def update_old_long(self, active, CS, long_plan, accel_limits, t_since_plan, starpilot_toggles): """Update longitudinal control. This updates the state machine and runs a PID loop""" # Interp control trajectory speeds = long_plan.speeds @@ -237,10 +237,10 @@ class LongControl: v_target_now = interp(t_since_plan, CONTROL_N_T_IDX, speeds) a_target_now = interp(t_since_plan, CONTROL_N_T_IDX, long_plan.accels) - v_target = interp(frogpilot_toggles.longitudinalActuatorDelay + t_since_plan, CONTROL_N_T_IDX, speeds) - a_target = 2 * (v_target - v_target_now) / frogpilot_toggles.longitudinalActuatorDelay - a_target_now + v_target = interp(starpilot_toggles.longitudinalActuatorDelay + t_since_plan, CONTROL_N_T_IDX, speeds) + a_target = 2 * (v_target - v_target_now) / starpilot_toggles.longitudinalActuatorDelay - a_target_now - v_target_1sec = interp(frogpilot_toggles.longitudinalActuatorDelay + t_since_plan + 1.0, CONTROL_N_T_IDX, speeds) + v_target_1sec = interp(starpilot_toggles.longitudinalActuatorDelay + t_since_plan + 1.0, CONTROL_N_T_IDX, speeds) else: v_target = 0.0 v_target_now = 0.0 @@ -253,20 +253,20 @@ class LongControl: output_accel = self.last_output_accel self.long_control_state = long_control_state_trans_old_long(self.CP, active, self.long_control_state, CS.vEgo, v_target, v_target_1sec, CS.brakePressed, - CS.cruiseState.standstill, frogpilot_toggles) + CS.cruiseState.standstill, starpilot_toggles) if self.long_control_state == LongCtrlState.off: self.reset_old_long(CS.vEgo) output_accel = 0. elif self.long_control_state == LongCtrlState.stopping: - if output_accel > frogpilot_toggles.stopAccel: + if output_accel > starpilot_toggles.stopAccel: output_accel = min(output_accel, 0.0) - output_accel -= frogpilot_toggles.stoppingDecelRate * DT_CTRL + output_accel -= starpilot_toggles.stoppingDecelRate * DT_CTRL self.reset_old_long(CS.vEgo) elif self.long_control_state == LongCtrlState.starting: - output_accel = frogpilot_toggles.startAccel + output_accel = starpilot_toggles.startAccel self.reset_old_long(CS.vEgo) elif self.long_control_state == LongCtrlState.pid: diff --git a/selfdrive/controls/lib/longitudinal_planner.py b/selfdrive/controls/lib/longitudinal_planner.py index a02e3a54..33db44bd 100755 --- a/selfdrive/controls/lib/longitudinal_planner.py +++ b/selfdrive/controls/lib/longitudinal_planner.py @@ -148,7 +148,7 @@ class LongitudinalPlanner: return 0.0 @staticmethod - def parse_model(model_msg, model_error, v_ego, frogpilot_toggles): + def parse_model(model_msg, model_error, v_ego, starpilot_toggles): if (len(model_msg.position.x) == ModelConstants.IDX_N and len(model_msg.velocity.x) == ModelConstants.IDX_N and len(model_msg.acceleration.x) == ModelConstants.IDX_N): @@ -162,7 +162,7 @@ class LongitudinalPlanner: a = np.zeros(len(T_IDXS_MPC)) j = np.zeros(len(T_IDXS_MPC)) - if frogpilot_toggles.taco_tune: + if starpilot_toggles.taco_tune: max_lat_accel = np.interp(v_ego, [5, 10, 20], [1.5, 2.0, 3.0]) curvatures = np.interp(T_IDXS_MPC, ModelConstants.T_IDXS, model_msg.orientationRate.z) / np.clip(v, 0.3, 100.0) max_v = np.sqrt(max_lat_accel / (np.abs(curvatures) + 1e-3)) - 2.0 @@ -174,8 +174,8 @@ class LongitudinalPlanner: throttle_prob = 1.0 return x, v, a, j, throttle_prob - def update(self, sm, frogpilot_toggles): - self.generation = getattr(frogpilot_toggles, "model_version", None) + def update(self, sm, starpilot_toggles): + self.generation = getattr(starpilot_toggles, "model_version", None) self.mode = 'blended' if sm['selfdriveState'].experimentalMode else 'acc' self.mpc.mode = 'acc' if not self.mlsim: @@ -187,7 +187,7 @@ class LongitudinalPlanner: accel_coast = ACCEL_MAX v_ego = max(sm['carState'].vEgo, sm['carState'].vEgoCluster) - v_cruise = sm['frogpilotPlan'].vCruise + v_cruise = sm['starpilotPlan'].vCruise v_cruise_initialized = sm['carState'].vCruise != V_CRUISE_UNSET long_control_off = sm['controlsState'].longControlState == LongCtrlState.off @@ -202,7 +202,7 @@ class LongitudinalPlanner: prev_accel_constraint = not (reset_state or sm['carState'].standstill) if self.mpc.mode == 'acc': - accel_limits = [sm['frogpilotPlan'].minAcceleration, sm['frogpilotPlan'].maxAcceleration] + accel_limits = [sm['starpilotPlan'].minAcceleration, sm['starpilotPlan'].maxAcceleration] steer_angle_without_offset = sm['carState'].steeringAngleDeg - sm['liveParameters'].angleOffsetDeg accel_limits_turns = limit_accel_in_turns(v_ego, steer_angle_without_offset, accel_limits, self.CP) else: @@ -218,10 +218,10 @@ class LongitudinalPlanner: self.v_desired_filter.x = max(0.0, self.v_desired_filter.update(v_ego)) # Compute model v_ego error self.v_model_error = self.get_model_speed_error(sm['modelV2'], v_ego) - x, v, a, j, throttle_prob = self.parse_model(sm['modelV2'], self.v_model_error, v_ego, frogpilot_toggles) + x, v, a, j, throttle_prob = self.parse_model(sm['modelV2'], self.v_model_error, v_ego, starpilot_toggles) # Don't clip at low speeds since throttle_prob doesn't account for creep self.allow_throttle = throttle_prob > ALLOW_THROTTLE_THRESHOLD or v_ego <= MIN_ALLOW_THROTTLE_SPEED - self.allow_throttle &= not sm['frogpilotPlan'].disableThrottle + self.allow_throttle &= not sm['starpilotPlan'].disableThrottle if not self.allow_throttle: clipped_accel_coast = max(accel_coast, accel_limits_turns[0]) @@ -335,9 +335,9 @@ class LongitudinalPlanner: except Exception: pass - self.mpc.set_weights(sm['frogpilotPlan'].accelerationJerk, - sm['frogpilotPlan'].dangerJerk, - sm['frogpilotPlan'].speedJerk, + self.mpc.set_weights(sm['starpilotPlan'].accelerationJerk, + sm['starpilotPlan'].dangerJerk, + sm['starpilotPlan'].speedJerk, prev_accel_constraint, personality=sm['selfdriveState'].personality, v_ego=v_ego, @@ -350,9 +350,9 @@ class LongitudinalPlanner: dec_mpc_mode = self.get_mpc_mode() if not self.mlsim: self.mpc.mode = dec_mpc_mode - tracking_lead = bool(sm['frogpilotPlan'].trackingLead) + tracking_lead = bool(sm['starpilotPlan'].trackingLead) self.mpc.update(sm['radarState'], v_cruise, x, v, a, j, - sm['frogpilotPlan'].dangerFactor, sm['frogpilotPlan'].tFollow, + sm['starpilotPlan'].dangerFactor, sm['starpilotPlan'].tFollow, personality=sm['selfdriveState'].personality, tracking_lead=tracking_lead) self.a_desired_trajectory_full = np.interp(CONTROL_N_T_IDX, T_IDXS_MPC, self.mpc.a_solution) @@ -395,17 +395,17 @@ class LongitudinalPlanner: if -0.05 < self.a_desired < 0.05: self.a_desired = 0.0 - classic_model = bool(getattr(frogpilot_toggles, "classic_model", False)) - tinygrad_model = bool(getattr(frogpilot_toggles, "tinygrad_model", False)) + classic_model = bool(getattr(starpilot_toggles, "classic_model", False)) + tinygrad_model = bool(getattr(starpilot_toggles, "tinygrad_model", False)) action_t = self.CP.longitudinalActuatorDelay + DT_MDL if classic_model: output_a_target, output_should_stop = get_accel_from_plan_classic( - self.CP, self.v_desired_trajectory, self.a_desired_trajectory, frogpilot_toggles.vEgoStopping) + self.CP, self.v_desired_trajectory, self.a_desired_trajectory, starpilot_toggles.vEgoStopping) elif tinygrad_model: output_a_target_mpc, output_should_stop_mpc = get_accel_from_plan( self.v_desired_trajectory, self.a_desired_trajectory, - action_t=action_t, vEgoStopping=frogpilot_toggles.vEgoStopping) + action_t=action_t, vEgoStopping=starpilot_toggles.vEgoStopping) output_a_target_e2e = sm['modelV2'].action.desiredAcceleration output_should_stop_e2e = sm['modelV2'].action.shouldStop @@ -418,7 +418,7 @@ class LongitudinalPlanner: else: output_a_target, output_should_stop = get_accel_from_plan( self.v_desired_trajectory, self.a_desired_trajectory, - action_t=action_t, vEgoStopping=frogpilot_toggles.vEgoStopping) + action_t=action_t, vEgoStopping=starpilot_toggles.vEgoStopping) self.output_a_target = float(output_a_target) self.output_should_stop = bool(output_should_stop) @@ -442,7 +442,7 @@ class LongitudinalPlanner: longitudinalPlan.fcw = self.fcw longitudinalPlan.aTarget = float(self.output_a_target) - longitudinalPlan.shouldStop = bool(self.output_should_stop) or sm['frogpilotPlan'].forcingStopLength < 1 + longitudinalPlan.shouldStop = bool(self.output_should_stop) or sm['starpilotPlan'].forcingStopLength < 1 longitudinalPlan.allowBrake = True longitudinalPlan.allowThrottle = bool(self.allow_throttle) diff --git a/selfdrive/controls/plannerd.py b/selfdrive/controls/plannerd.py index e53d8a79..99ab149e 100755 --- a/selfdrive/controls/plannerd.py +++ b/selfdrive/controls/plannerd.py @@ -7,7 +7,7 @@ from openpilot.selfdrive.controls.lib.ldw import LaneDepartureWarning from openpilot.selfdrive.controls.lib.longitudinal_planner import LongitudinalPlanner import cereal.messaging as messaging -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles def main(): @@ -24,15 +24,15 @@ def main(): sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'liveParameters', 'radarState', 'modelV2', 'selfdriveState'], poll='modelV2') - # FrogPilot variables - sm = sm.extend(['frogpilotCarState', 'frogpilotPlan']) + # StarPilot variables + sm = sm.extend(['starpilotCarState', 'starpilotPlan']) - frogpilot_toggles = get_frogpilot_toggles() + starpilot_toggles = get_starpilot_toggles() while True: sm.update() if sm.updated['modelV2']: - longitudinal_planner.update(sm, frogpilot_toggles) + longitudinal_planner.update(sm, starpilot_toggles) longitudinal_planner.publish(sm, pm) ldw.update(sm.frame, sm['modelV2'], sm['carState'], sm['carControl']) @@ -42,8 +42,8 @@ def main(): msg.driverAssistance.rightLaneDeparture = ldw.right pm.send('driverAssistance', msg) - # FrogPilot variables - frogpilot_toggles = get_frogpilot_toggles(sm) + # StarPilot variables + starpilot_toggles = get_starpilot_toggles(sm) if __name__ == "__main__": diff --git a/selfdrive/controls/radard.py b/selfdrive/controls/radard.py index f55aff3d..73a393a6 100644 --- a/selfdrive/controls/radard.py +++ b/selfdrive/controls/radard.py @@ -14,7 +14,7 @@ from openpilot.common.swaglog import cloudlog from openpilot.common.simple_kalman import KF1D from openpilot.selfdrive.controls.lib.desire_helper import LaneChangeDirection, LaneChangeState -from openpilot.frogpilot.common.frogpilot_variables import THRESHOLD, get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_variables import THRESHOLD, get_starpilot_toggles # Default lead acceleration decay set to 50% at 1s @@ -59,7 +59,7 @@ class Track: self.K_K = kalman_params.K self.kf = KF1D([[v_lead], [0.0]], self.K_A, self.K_C, self.K_K) - # FrogPilot variables + # StarPilot variables self.leadTrackID = 0 self.radarfulFilter = FirstOrderFilter(0, 0.5, self.K_A[0][1]) @@ -143,8 +143,8 @@ def laplacian_pdf(x: float, mu: float, b: float): return math.exp(-abs(x-mu)/b) -def match_vision_to_track(v_ego: float, lead: capnp._DynamicStructReader, model_data: capnp._DynamicStructReader, tracks: dict[int, Track], frogpilot_toggles: SimpleNamespace): - if model_data.meta.laneChangeState == LaneChangeState.laneChangeStarting and getattr(frogpilot_toggles, "human_lane_changes", False): +def match_vision_to_track(v_ego: float, lead: capnp._DynamicStructReader, model_data: capnp._DynamicStructReader, tracks: dict[int, Track], starpilot_toggles: SimpleNamespace): + if model_data.meta.laneChangeState == LaneChangeState.laneChangeStarting and getattr(starpilot_toggles, "human_lane_changes", False): direction = model_data.meta.laneChangeDirection if direction == LaneChangeDirection.left: tracks = {k: v for k, v in tracks.items() if v.yRel > 0} @@ -192,13 +192,13 @@ def get_RadarState_from_vision(lead_msg: capnp._DynamicStructReader, v_ego: floa def get_lead(v_ego: float, ready: bool, tracks: dict[int, Track], lead_msg: capnp._DynamicStructReader, model_v_ego: float, model_data: capnp._DynamicStructReader, standstill: bool, - frogpilot_plan: capnp._DynamicStructReader, frogpilot_toggles: SimpleNamespace, + starpilot_plan: capnp._DynamicStructReader, starpilot_toggles: SimpleNamespace, low_speed_override: bool = True) -> dict[str, Any]: - lead_detection_probability = float(getattr(frogpilot_toggles, "lead_detection_probability", 0.35)) + lead_detection_probability = float(getattr(starpilot_toggles, "lead_detection_probability", 0.35)) # Determine leads, this is where the essential logic happens if len(tracks) > 0 and ready and lead_msg.prob > lead_detection_probability: - track = match_vision_to_track(v_ego, lead_msg, model_data, tracks, frogpilot_toggles) + track = match_vision_to_track(v_ego, lead_msg, model_data, tracks, starpilot_toggles) else: track = None @@ -223,12 +223,12 @@ def get_lead(v_ego: float, ready: bool, tracks: dict[int, Track], lead_msg: capn closest_track = min(far_lead_tracks, key=lambda c: c.dRel) lead_dict = closest_track.get_RadarState() - # FrogPilot variables + # StarPilot variables for track in tracks.values(): track.leadTrackID = lead_dict.get('radarTrackId', -1) if 'dRel' in lead_dict: - lead_dict['dRel'] -= frogpilot_plan.increasedStoppedDistance + lead_dict['dRel'] -= starpilot_plan.increasedStoppedDistance return lead_dict @@ -260,9 +260,9 @@ class RadarD: self.ready = False - # FrogPilot variables - self.frogpilot_radar_state = custom.FrogPilotRadarState.new_message() - self.frogpilot_toggles = get_frogpilot_toggles() + # StarPilot variables + self.starpilot_radar_state = custom.StarPilotRadarState.new_message() + self.starpilot_toggles = get_starpilot_toggles() def update(self, sm: messaging.SubMaster, rr: car.RadarData): self.ready = sm.seen['modelV2'] @@ -297,7 +297,7 @@ class RadarD: self.radar_state.radarErrors = rr.errors self.radar_state.carStateMonoTime = sm.logMonoTime['carState'] - self.frogpilot_radar_state = custom.FrogPilotRadarState.new_message() + self.starpilot_radar_state = custom.StarPilotRadarState.new_message() if len(sm['modelV2'].velocity.x): model_v_ego = sm['modelV2'].velocity.x[0] @@ -307,16 +307,16 @@ class RadarD: leads_v3 = sm['modelV2'].leadsV3 if len(leads_v3) > 1: self.radar_state.leadOne = get_lead(self.v_ego, self.ready, self.tracks, leads_v3[0], model_v_ego, sm['modelV2'], - sm['carState'].standstill, sm['frogpilotPlan'], self.frogpilot_toggles, low_speed_override=True) + sm['carState'].standstill, sm['starpilotPlan'], self.starpilot_toggles, low_speed_override=True) self.radar_state.leadTwo = get_lead(self.v_ego, self.ready, self.tracks, leads_v3[1], model_v_ego, sm['modelV2'], - sm['carState'].standstill, sm['frogpilotPlan'], self.frogpilot_toggles, low_speed_override=False) + sm['carState'].standstill, sm['starpilotPlan'], self.starpilot_toggles, low_speed_override=False) - # FrogPilot variables - if self.ready and (self.frogpilot_toggles.adjacent_lead_tracking or self.frogpilot_toggles.human_lane_changes): - self.frogpilot_radar_state.leadLeft = get_adjacent_lead(self.tracks, sm['carState'].standstill, sm['modelV2'], left=True) - self.frogpilot_radar_state.leadRight = get_adjacent_lead(self.tracks, sm['carState'].standstill, sm['modelV2'], left=False) + # StarPilot variables + if self.ready and (self.starpilot_toggles.adjacent_lead_tracking or self.starpilot_toggles.human_lane_changes): + self.starpilot_radar_state.leadLeft = get_adjacent_lead(self.tracks, sm['carState'].standstill, sm['modelV2'], left=True) + self.starpilot_radar_state.leadRight = get_adjacent_lead(self.tracks, sm['carState'].standstill, sm['modelV2'], left=False) - self.frogpilot_toggles = get_frogpilot_toggles(sm) + self.starpilot_toggles = get_starpilot_toggles(sm) def publish(self, pm: messaging.PubMaster): assert self.radar_state is not None @@ -326,11 +326,11 @@ class RadarD: radar_msg.radarState = self.radar_state pm.send("radarState", radar_msg) - # FrogPilot variables - frogpilot_radar_msg = messaging.new_message("frogpilotRadarState") - frogpilot_radar_msg.valid = self.radar_state_valid - frogpilot_radar_msg.frogpilotRadarState = self.frogpilot_radar_state - pm.send("frogpilotRadarState", frogpilot_radar_msg) + # StarPilot variables + starpilot_radar_msg = messaging.new_message("starpilotRadarState") + starpilot_radar_msg.valid = self.radar_state_valid + starpilot_radar_msg.starpilotRadarState = self.starpilot_radar_state + pm.send("starpilotRadarState", starpilot_radar_msg) # fuses camera and radar data for best lead detection @@ -344,14 +344,14 @@ def main() -> None: # *** setup messaging sm = messaging.SubMaster(['modelV2', 'carState', 'liveTracks'], poll='modelV2', - ignore_valid=['frogpilotPlan']) + ignore_valid=['starpilotPlan']) pm = messaging.PubMaster(['radarState']) RD = RadarD(CP.radarDelay) - # FrogPilot variables - sm = sm.extend(['frogpilotPlan']) - pm = pm.extend(['frogpilotRadarState']) + # StarPilot variables + sm = sm.extend(['starpilotPlan']) + pm = pm.extend(['starpilotRadarState']) while 1: sm.update() diff --git a/selfdrive/controls/tests/test_latcontrol.py b/selfdrive/controls/tests/test_latcontrol.py index 67519059..eb82c54f 100644 --- a/selfdrive/controls/tests/test_latcontrol.py +++ b/selfdrive/controls/tests/test_latcontrol.py @@ -31,17 +31,17 @@ class TestLatControl: CS.steeringPressed = False params = log.LiveParametersData.new_message() - frogpilot_toggles = SimpleNamespace() + starpilot_toggles = SimpleNamespace() # Saturate for curvature limited and controller limited for _ in range(1000): - _, _, lac_log = controller.update(True, CS, VM, params, False, 0, True, 0.2, None, None, frogpilot_toggles) + _, _, lac_log = controller.update(True, CS, VM, params, False, 0, True, 0.2, None, None, starpilot_toggles) assert lac_log.saturated for _ in range(1000): - _, _, lac_log = controller.update(True, CS, VM, params, False, 0, False, 0.2, None, None, frogpilot_toggles) + _, _, lac_log = controller.update(True, CS, VM, params, False, 0, False, 0.2, None, None, starpilot_toggles) assert not lac_log.saturated for _ in range(1000): - _, _, lac_log = controller.update(True, CS, VM, params, False, 1, False, 0.2, None, None, frogpilot_toggles) + _, _, lac_log = controller.update(True, CS, VM, params, False, 1, False, 0.2, None, None, starpilot_toggles) assert lac_log.saturated diff --git a/selfdrive/locationd/lagd.py b/selfdrive/locationd/lagd.py index f4b4572f..b84c27af 100755 --- a/selfdrive/locationd/lagd.py +++ b/selfdrive/locationd/lagd.py @@ -13,7 +13,7 @@ from openpilot.common.realtime import config_realtime_process from openpilot.common.swaglog import cloudlog from openpilot.selfdrive.locationd.helpers import PoseCalibrator, Pose, fft_next_good_size, parabolic_peak_interp -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles BLOCK_SIZE = 100 BLOCK_NUM = 50 @@ -216,8 +216,8 @@ class LateralLagEstimator: else: liveDelay.status = log.LiveDelayData.Status.unestimated - if self.frogpilot_toggles.use_custom_steerActuatorDelay: - liveDelay.lateralDelay = self.frogpilot_toggles.steerActuatorDelay + if self.starpilot_toggles.use_custom_steerActuatorDelay: + liveDelay.lateralDelay = self.starpilot_toggles.steerActuatorDelay elif liveDelay.status == log.LiveDelayData.Status.estimated: liveDelay.lateralDelay = valid_mean_lag else: @@ -378,10 +378,10 @@ def main(): lag, valid_blocks = initial_lag_params lag_learner.reset(lag, valid_blocks) - # FrogPilot variables - sm = sm.extend(['frogpilotPlan']) + # StarPilot variables + sm = sm.extend(['starpilotPlan']) - lag_learner.frogpilot_toggles = get_frogpilot_toggles() + lag_learner.starpilot_toggles = get_starpilot_toggles() while True: sm.update() @@ -402,5 +402,5 @@ def main(): if sm.frame % 1200 == 0: # cache every 60 seconds params.put_nonblocking("LiveDelay", lag_msg_dat) - # FrogPilot variables - lag_learner.frogpilot_toggles = get_frogpilot_toggles(sm) + # StarPilot variables + lag_learner.starpilot_toggles = get_starpilot_toggles(sm) diff --git a/selfdrive/locationd/paramsd.py b/selfdrive/locationd/paramsd.py index dbdb9d77..2a29bc64 100755 --- a/selfdrive/locationd/paramsd.py +++ b/selfdrive/locationd/paramsd.py @@ -12,7 +12,7 @@ from openpilot.selfdrive.locationd.models.constants import GENERATED_DIR from openpilot.selfdrive.locationd.helpers import PoseCalibrator, Pose from openpilot.common.swaglog import cloudlog -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles MAX_ANGLE_OFFSET_DELTA = 20 * DT_MDL # Max 20 deg/s ROLL_MAX_DELTA = np.radians(20.0) * DT_MDL # 20deg in 1 second is well within curvature limits @@ -59,7 +59,7 @@ class VehicleParamsLearner: self.reset(None) - # FrogPilot variables + # StarPilot variables self.CP = CP def reset(self, t: float | None): @@ -166,7 +166,7 @@ class VehicleParamsLearner: liveParameters = msg.liveParameters liveParameters.posenetValid = True liveParameters.sensorValid = sensors_valid - liveParameters.steerRatio = float(x[States.STEER_RATIO].item() if not self.frogpilot_toggles.use_custom_steerRatio else self.frogpilot_toggles.steerRatio) + liveParameters.steerRatio = float(x[States.STEER_RATIO].item() if not self.starpilot_toggles.use_custom_steerRatio else self.starpilot_toggles.steerRatio) liveParameters.stiffnessFactor = float(x[States.STIFFNESS].item()) liveParameters.roll = float(self.roll) liveParameters.angleOffsetAverageDeg = float(self.avg_angle_offset) @@ -192,7 +192,7 @@ class VehicleParamsLearner: liveParameters.debugFilterState.value = x.tolist() liveParameters.debugFilterState.std = P.tolist() - # FrogPilot variables + # StarPilot variables if self.CP.carFingerprint == "RAM_HD": liveParameters.valid = True @@ -285,10 +285,10 @@ def main(): steer_ratio, stiffness_factor, angle_offset_deg, pInitial = retrieve_initial_vehicle_params(params, CP, REPLAY, DEBUG) learner = VehicleParamsLearner(CP, steer_ratio, stiffness_factor, np.radians(angle_offset_deg), pInitial) - # FrogPilot variables - sm = sm.extend(['frogpilotPlan']) + # StarPilot variables + sm = sm.extend(['starpilotPlan']) - learner.frogpilot_toggles = get_frogpilot_toggles() + learner.starpilot_toggles = get_starpilot_toggles() while True: sm.update() @@ -307,8 +307,8 @@ def main(): pm.send('liveParameters', msg_dat) - # FrogPilot variables - learner.frogpilot_toggles = get_frogpilot_toggles(sm) + # StarPilot variables + learner.starpilot_toggles = get_starpilot_toggles(sm) if __name__ == "__main__": diff --git a/selfdrive/locationd/torqued.py b/selfdrive/locationd/torqued.py index a020fc53..d14d959f 100755 --- a/selfdrive/locationd/torqued.py +++ b/selfdrive/locationd/torqued.py @@ -12,7 +12,7 @@ from openpilot.common.filter_simple import FirstOrderFilter from openpilot.common.swaglog import cloudlog from openpilot.selfdrive.locationd.helpers import PointBuckets, ParameterEstimator, PoseCalibrator, Pose -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles HISTORY = 5 # secs POINTS_PER_BUCKET = 1500 @@ -232,9 +232,9 @@ class TorqueEstimator(ParameterEstimator): if with_points: liveTorqueParameters.points = self.filtered_points.get_points()[:, [0, 2]].tolist() - liveTorqueParameters.latAccelFactorFiltered = float(self.filtered_params['latAccelFactor'].x if not self.frogpilot_toggles.use_custom_latAccelFactor else self.frogpilot_toggles.latAccelFactor) + liveTorqueParameters.latAccelFactorFiltered = float(self.filtered_params['latAccelFactor'].x if not self.starpilot_toggles.use_custom_latAccelFactor else self.starpilot_toggles.latAccelFactor) liveTorqueParameters.latAccelOffsetFiltered = float(self.filtered_params['latAccelOffset'].x) - liveTorqueParameters.frictionCoefficientFiltered = float(self.filtered_params['frictionCoefficient'].x if not self.frogpilot_toggles.use_custom_friction else self.frogpilot_toggles.friction) + liveTorqueParameters.frictionCoefficientFiltered = float(self.filtered_params['frictionCoefficient'].x if not self.starpilot_toggles.use_custom_friction else self.starpilot_toggles.friction) liveTorqueParameters.totalBucketPoints = len(self.filtered_points) liveTorqueParameters.calPerc = self.filtered_points.get_valid_percent() liveTorqueParameters.decay = self.decay @@ -253,15 +253,15 @@ def main(demo=False): params = Params() estimator = TorqueEstimator(messaging.log_from_bytes(params.get("CarParams", block=True), car.CarParams)) - # FrogPilot variables - sm = sm.extend(['frogpilotPlan']) + # StarPilot variables + sm = sm.extend(['starpilotPlan']) - frogpilot_toggles = get_frogpilot_toggles() + starpilot_toggles = get_starpilot_toggles() - if not frogpilot_toggles.liveValid: + if not starpilot_toggles.liveValid: estimator = TorqueEstimator(messaging.log_from_bytes(params.get("CarParams", block=True), car.CarParams), decimated=True) - estimator.frogpilot_toggles = frogpilot_toggles + estimator.starpilot_toggles = starpilot_toggles while True: sm.update() @@ -280,8 +280,8 @@ def main(demo=False): msg = estimator.get_msg(valid=sm.all_checks(), with_points=True) params.put_nonblocking("LiveTorqueParameters", msg.to_bytes()) - # FrogPilot variables - estimator.frogpilot_toggles = get_frogpilot_toggles(sm) + # StarPilot variables + estimator.starpilot_toggles = get_starpilot_toggles(sm) if __name__ == "__main__": diff --git a/selfdrive/modeld/modeld.py b/selfdrive/modeld/modeld.py index 978b2aee..414b1e75 100755 --- a/selfdrive/modeld/modeld.py +++ b/selfdrive/modeld/modeld.py @@ -31,7 +31,7 @@ from openpilot.selfdrive.modeld.constants import ModelConstants, Plan from openpilot.selfdrive.modeld.models.commonmodel_pyx import DrivingModelFrame, CLContext from openpilot.selfdrive.modeld.runners.tinygrad_helpers import qcom_tensor_from_opencl_address -from openpilot.frogpilot.common.frogpilot_variables import MODELS_PATH, get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_variables import MODELS_PATH, get_starpilot_toggles PROCESS_NAME = "selfdrive.modeld.modeld" @@ -258,8 +258,8 @@ class ModelState: def main(demo=False): cloudlog.warning("modeld init") - # FrogPilot variables - frogpilot_toggles = get_frogpilot_toggles() + # StarPilot variables + starpilot_toggles = get_starpilot_toggles() if not USBGPU: # USB GPU currently saturates a core so can't do this yet, @@ -327,14 +327,14 @@ def main(demo=False): # TODO this needs more thought, use .2s extra for now to estimate other delays # TODO Move smooth seconds to action function - long_delay = frogpilot_toggles.longitudinalActuatorDelay + LONG_SMOOTH_SECONDS + long_delay = starpilot_toggles.longitudinalActuatorDelay + LONG_SMOOTH_SECONDS prev_action = log.ModelDataV2.Action() DH = DesireHelper() - # FrogPilot variables - sm = sm.extend(['frogpilotPlan']) - pm = pm.extend(['frogpilotModelV2']) + # StarPilot variables + sm = sm.extend(['starpilotPlan']) + pm = pm.extend(['starpilotModelV2']) while True: # Keep receiving frames until we are at least 1 frame ahead of previous extra frame @@ -429,7 +429,7 @@ def main(demo=False): l_lane_change_prob = desire_state[log.Desire.laneChangeLeft] r_lane_change_prob = desire_state[log.Desire.laneChangeRight] lane_change_prob = l_lane_change_prob + r_lane_change_prob - DH.update(sm['carState'], sm['carControl'].latActive, lane_change_prob, sm['frogpilotPlan'], frogpilot_toggles) + DH.update(sm['carState'], sm['carControl'].latActive, lane_change_prob, sm['starpilotPlan'], starpilot_toggles) modelv2_send.modelV2.meta.laneChangeState = DH.lane_change_state modelv2_send.modelV2.meta.laneChangeDirection = DH.lane_change_direction drivingdata_send.drivingModelData.meta.laneChangeState = DH.lane_change_state @@ -440,15 +440,15 @@ def main(demo=False): pm.send('drivingModelData', drivingdata_send) pm.send('cameraOdometry', posenet_send) - # FrogPilot variables - frogpilot_modelv2_send = messaging.new_message('frogpilotModelV2') - frogpilot_modelv2_send.frogpilotModelV2.turnDirection = DH.turn_direction + # StarPilot variables + starpilot_modelv2_send = messaging.new_message('starpilotModelV2') + starpilot_modelv2_send.starpilotModelV2.turnDirection = DH.turn_direction - pm.send('frogpilotModelV2', frogpilot_modelv2_send) + pm.send('starpilotModelV2', starpilot_modelv2_send) last_vipc_frame_id = meta_main.frame_id - # FrogPilot variables - frogpilot_toggles = get_frogpilot_toggles(sm) + # StarPilot variables + starpilot_toggles = get_starpilot_toggles(sm) if __name__ == "__main__": diff --git a/selfdrive/modeld/models/commonmodel_pyx.so b/selfdrive/modeld/models/commonmodel_pyx.so index 12372095..cfc53bba 100755 Binary files a/selfdrive/modeld/models/commonmodel_pyx.so and b/selfdrive/modeld/models/commonmodel_pyx.so differ diff --git a/selfdrive/monitoring/dmonitoringd.py b/selfdrive/monitoring/dmonitoringd.py index d2a6163a..10bfde1a 100644 --- a/selfdrive/monitoring/dmonitoringd.py +++ b/selfdrive/monitoring/dmonitoringd.py @@ -18,8 +18,8 @@ def dmonitoringd_thread(): DM = DriverMonitoring(rhd_saved=params.get_bool("IsRhdDetected"), always_on=params.get_bool("AlwaysOnDM")) demo_mode=False - # FrogPilot variables - sm = sm.extend(['frogpilotCarState']) + # StarPilot variables + sm = sm.extend(['starpilotCarState']) driver_view_enabled = params.get_bool("IsDriverViewEnabled") @@ -35,7 +35,7 @@ def dmonitoringd_thread(): DM.run_step(sm, demo=demo_mode) elif valid: DM.run_step(sm, demo=demo_mode) - # FrogPilot variables + # StarPilot variables elif driver_view_enabled: DM.face_detected = sm['driverStateV2'].leftDriverData.faceProb > DM.settings._FACE_THRESHOLD or sm['driverStateV2'].rightDriverData.faceProb > DM.settings._FACE_THRESHOLD diff --git a/selfdrive/monitoring/helpers.py b/selfdrive/monitoring/helpers.py index ca569627..3f9307c9 100644 --- a/selfdrive/monitoring/helpers.py +++ b/selfdrive/monitoring/helpers.py @@ -432,7 +432,7 @@ class DriverMonitoring: rpyCalib = [0., 0., 0.] else: highway_speed = sm['carState'].vEgo - enabled = sm['selfdriveState'].enabled or sm['frogpilotCarState'].alwaysOnLateralEnabled + enabled = sm['selfdriveState'].enabled or sm['starpilotCarState'].alwaysOnLateralEnabled wrong_gear = sm['carState'].gearShifter not in (car.CarState.GearShifter.drive, car.CarState.GearShifter.low) standstill = sm['carState'].standstill driver_engaged = sm['carState'].steeringPressed or sm['carState'].gasPressed diff --git a/selfdrive/pandad/panda_safety.cc b/selfdrive/pandad/panda_safety.cc index 83bff602..f7893887 100644 --- a/selfdrive/pandad/panda_safety.cc +++ b/selfdrive/pandad/panda_safety.cc @@ -65,15 +65,15 @@ void PandaSafety::setSafetyMode(const std::string ¶ms_string) { auto safety_configs = car_params.getSafetyConfigs(); uint16_t alternative_experience = car_params.getAlternativeExperience(); - // FrogPilot variables - std::string frogpilot_params_string = params_.get("FrogPilotCarParams"); + // StarPilot variables + std::string starpilot_params_string = params_.get("StarPilotCarParams"); - AlignedBuffer frogpilot_aligned_buf; - capnp::FlatArrayMessageReader frogpilot_cmsg(frogpilot_aligned_buf.align(frogpilot_params_string.data(), frogpilot_params_string.size())); - cereal::FrogPilotCarParams::Reader frogpilot_car_params = frogpilot_cmsg.getRoot(); + AlignedBuffer starpilot_aligned_buf; + capnp::FlatArrayMessageReader starpilot_cmsg(starpilot_aligned_buf.align(starpilot_params_string.data(), starpilot_params_string.size())); + cereal::StarPilotCarParams::Reader starpilot_car_params = starpilot_cmsg.getRoot(); - auto frogpilot_safety_configs = frogpilot_car_params.getSafetyConfigs(); - alternative_experience |= frogpilot_car_params.getAlternativeExperience(); + auto starpilot_safety_configs = starpilot_car_params.getSafetyConfigs(); + alternative_experience |= starpilot_car_params.getAlternativeExperience(); for (int i = 0; i < pandas_.size(); ++i) { // Default to SILENT safety model if not specified @@ -84,9 +84,9 @@ void PandaSafety::setSafetyMode(const std::string ¶ms_string) { safety_param = safety_configs[i].getSafetyParam(); } - // FrogPilot variables - if (i < frogpilot_safety_configs.size()) { - safety_param |= frogpilot_safety_configs[i].getSafetyParam(); + // StarPilot variables + if (i < starpilot_safety_configs.size()) { + safety_param |= starpilot_safety_configs[i].getSafetyParam(); } LOGW("Panda %d: setting safety model: %d, param: %d, alternative experience: %d", i, (int)safety_model, safety_param, alternative_experience); diff --git a/selfdrive/pandad/pandad b/selfdrive/pandad/pandad index ec96de12..c448510c 100755 Binary files a/selfdrive/pandad/pandad and b/selfdrive/pandad/pandad differ diff --git a/selfdrive/pandad/pandad.cc b/selfdrive/pandad/pandad.cc index 70b80ffa..c96fbb36 100644 --- a/selfdrive/pandad/pandad.cc +++ b/selfdrive/pandad/pandad.cc @@ -43,7 +43,7 @@ ExitHandler do_exit; -// FrogPilot variables +// StarPilot variables static uint64_t last_door_lock_command_time = 0; bool check_all_connected(const std::vector &pandas) { @@ -111,7 +111,7 @@ void can_send_thread(std::vector pandas, bool fake_send) { LOGE("sendcan too old to send: %" PRIu64 ", %" PRIu64, nanos_since_boot(), event.getLogMonoTime()); } - // FrogPilot variables + // StarPilot variables for (const cereal::CanData::Reader &can : event.getSendcan()) { if (can.getAddress() == 0x750) { last_door_lock_command_time = nanos_since_boot(); diff --git a/selfdrive/selfdrived/events.py b/selfdrive/selfdrived/events.py index b9558c8a..e3315984 100644 --- a/selfdrive/selfdrived/events.py +++ b/selfdrive/selfdrived/events.py @@ -24,10 +24,10 @@ VisualAlert = car.CarControl.HUDControl.VisualAlert AudibleAlert = car.CarControl.HUDControl.AudibleAlert EventName = log.OnroadEvent.EventName -# FrogPilot variables -FrogPilotAlertStatus = custom.FrogPilotSelfdriveState.AlertStatus -FrogPilotAudibleAlert = custom.FrogPilotCarControl.HUDControl.AudibleAlert -FrogPilotEventName = custom.FrogPilotOnroadEvent.EventName +# StarPilot variables +StarPilotAlertStatus = custom.StarPilotSelfdriveState.AlertStatus +StarPilotAudibleAlert = custom.StarPilotCarControl.HUDControl.AudibleAlert +StarPilotEventName = custom.StarPilotOnroadEvent.EventName # Alert priorities @@ -57,18 +57,18 @@ class ET: # get event name from enum EVENT_NAME = {v: k for k, v in EventName.schema.enumerants.items()} -# FrogPilot variables -FROGPILOT_EVENT_NAME = {v: k for k, v in FrogPilotEventName.schema.enumerants.items()} +# StarPilot variables +STARPILOT_EVENT_NAME = {v: k for k, v in StarPilotEventName.schema.enumerants.items()} class Events: - def __init__(self, frogpilot=False): + def __init__(self, starpilot=False): self.events: list[int] = [] self.static_events: list[int] = [] - self.event_counters = dict.fromkeys((FROGPILOT_EVENTS if frogpilot else EVENTS).keys(), 0) + self.event_counters = dict.fromkeys((STARPILOT_EVENTS if starpilot else EVENTS).keys(), 0) - # FrogPilot variables - self.frogpilot = frogpilot + # StarPilot variables + self.starpilot = starpilot @property def names(self) -> list[int]: @@ -87,7 +87,7 @@ class Events: self.events = self.static_events.copy() def contains(self, event_type: str) -> bool: - return any(event_type in (FROGPILOT_EVENTS if self.frogpilot else EVENTS).get(e, {}) for e in self.events) + return any(event_type in (STARPILOT_EVENTS if self.starpilot else EVENTS).get(e, {}) for e in self.events) def create_alerts(self, event_types: list[str], callback_args=None): if callback_args is None: @@ -95,15 +95,15 @@ class Events: ret = [] for e in self.events: - types = (FROGPILOT_EVENTS if self.frogpilot else EVENTS)[e].keys() + types = (STARPILOT_EVENTS if self.starpilot else EVENTS)[e].keys() for et in event_types: if et in types: - alert = (FROGPILOT_EVENTS if self.frogpilot else EVENTS)[e][et] + alert = (STARPILOT_EVENTS if self.starpilot else EVENTS)[e][et] if not isinstance(alert, Alert): alert = alert(*callback_args) if DT_CTRL * (self.event_counters[e] + 1) >= alert.creation_delay: - alert.alert_type = f"{(FROGPILOT_EVENT_NAME if self.frogpilot else EVENT_NAME)[e]}/{et}" + alert.alert_type = f"{(STARPILOT_EVENT_NAME if self.starpilot else EVENT_NAME)[e]}/{et}" alert.event_type = et ret.append(alert) return ret @@ -115,9 +115,9 @@ class Events: def to_msg(self): ret = [] for event_name in self.events: - event = (custom.FrogPilotOnroadEvent if self.frogpilot else log.OnroadEvent).new_message() + event = (custom.StarPilotOnroadEvent if self.starpilot else log.OnroadEvent).new_message() event.name = event_name - for event_type in (FROGPILOT_EVENTS if self.frogpilot else EVENTS).get(event_name, {}): + for event_type in (STARPILOT_EVENTS if self.starpilot else EVENTS).get(event_name, {}): setattr(event, event_type, True) ret.append(event) return ret @@ -236,31 +236,31 @@ AlertCallbackType = Callable[[car.CarParams, car.CarState, messaging.SubMaster, def soft_disable_alert(alert_text_2: str) -> AlertCallbackType: - def func(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: + def func(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: if soft_disable_time < int(0.5 / DT_CTRL): return ImmediateDisableAlert(alert_text_2) return SoftDisableAlert(alert_text_2) return func def user_soft_disable_alert(alert_text_2: str) -> AlertCallbackType: - def func(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: + def func(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: if soft_disable_time < int(0.5 / DT_CTRL): return ImmediateDisableAlert(alert_text_2) return UserSoftDisableAlert(alert_text_2) return func -def startup_master_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def startup_master_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: branch = get_short_branch() # Ensure get_short_branch is cached to avoid lags on startup if "REPLAY" in os.environ: branch = "replay" return StartupAlert("WARNING: This branch is not tested", branch, alert_status=AlertStatus.userPrompt) -def below_engage_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def below_engage_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: return NoEntryAlert(f"Drive above {get_display_speed(CP.minEnableSpeed, metric)} to engage") -def below_steer_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def below_steer_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: return Alert( f"Steer Unavailable Under {get_display_speed(CP.minSteerSpeed, metric)}", "", @@ -268,7 +268,7 @@ def below_steer_speed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.S Priority.LOW, VisualAlert.none, AudibleAlert.prompt, 1.5) -def calibration_incomplete_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def calibration_incomplete_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: first_word = 'Recalibrating' if sm['liveCalibration'].calStatus == log.LiveCalibrationData.Status.recalibrating else 'Calibrating' return Alert( f"{first_word}: {sm['liveCalibration'].calPerc:.0f}%", @@ -277,7 +277,7 @@ def calibration_incomplete_alert(CP: car.CarParams, CS: car.CarState, sm: messag Priority.LOWEST, VisualAlert.none, AudibleAlert.none, .2) -def audio_feedback_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def audio_feedback_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: duration = FEEDBACK_MAX_DURATION - ((sm['audioFeedback'].blockNum + 1) * SAMPLE_BUFFER / SAMPLE_RATE) return NormalPermanentAlert( "Recording Audio Feedback", @@ -287,37 +287,37 @@ def audio_feedback_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubM # *** debug alerts *** -def out_of_space_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def out_of_space_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: full_perc = round(100. - sm['deviceState'].freeSpacePercent) return NormalPermanentAlert("Out of Storage", f"{full_perc}% full") -def posenet_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def posenet_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: mdl = sm['modelV2'].velocity.x[0] if len(sm['modelV2'].velocity.x) else math.nan err = CS.vEgo - mdl msg = f"Speed Error: {err:.1f} m/s" return NoEntryAlert(msg, alert_text_1="Posenet Speed Invalid") -def process_not_running_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def process_not_running_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: not_running = [p.name for p in sm['managerState'].processes if not p.running and p.shouldBeRunning] msg = ', '.join(not_running) return NoEntryAlert(msg, alert_text_1="Process Not Running") -def comm_issue_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def comm_issue_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: bs = [s for s in sm.data.keys() if not sm.all_checks([s, ])] msg = ', '.join(bs[:4]) # can't fit too many on one line return NoEntryAlert(msg, alert_text_1="Communication Issue Between Processes") -def camera_malfunction_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def camera_malfunction_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: all_cams = ('roadCameraState', 'driverCameraState', 'wideRoadCameraState') bad_cams = [s.replace('State', '') for s in all_cams if s in sm.data.keys() and not sm.all_checks([s, ])] return NormalPermanentAlert("Camera Malfunction", ', '.join(bad_cams)) -def calibration_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def calibration_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: rpy = sm['liveCalibration'].rpyCalib yaw = math.degrees(rpy[2] if len(rpy) == 3 else math.nan) pitch = math.degrees(rpy[1] if len(rpy) == 3 else math.nan) @@ -325,7 +325,7 @@ def calibration_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging return NormalPermanentAlert("Calibration Invalid", angles) -def paramsd_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def paramsd_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: if not sm['liveParameters'].angleOffsetValid: angle_offset_deg = sm['liveParameters'].angleOffsetDeg title = "Steering misalignment detected" @@ -343,28 +343,28 @@ def paramsd_invalid_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.Sub return NoEntryAlert(alert_text_1=title, alert_text_2=text) -def overheat_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def overheat_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: cpu = max(sm['deviceState'].cpuTempC, default=0.) gpu = max(sm['deviceState'].gpuTempC, default=0.) temp = max((cpu, gpu, sm['deviceState'].memoryTempC)) return NormalPermanentAlert("System Overheated", f"{temp:.0f} °C") -def low_memory_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def low_memory_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: return NormalPermanentAlert("Low Memory", f"{sm['deviceState'].memoryUsagePercent}% used") -def high_cpu_usage_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def high_cpu_usage_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: x = max(sm['deviceState'].cpuUsagePercent, default=0.) return NormalPermanentAlert("High CPU Usage", f"{x}% used") -def modeld_lagging_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def modeld_lagging_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: return NormalPermanentAlert("Driving Model Lagging", f"{sm['modelV2'].frameDropPerc:.1f}% frames dropped") -def wrong_car_mode_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: - if frogpilot_toggles.has_cc_long: +def wrong_car_mode_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: + if starpilot_toggles.has_cc_long: text = "Enable Cruise Control to Engage" elif CP.brand == "honda": text = "Enable Main Switch to Engage" @@ -373,14 +373,14 @@ def wrong_car_mode_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubM return NoEntryAlert(text) -def joystick_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def joystick_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: gb = sm['carControl'].actuators.accel / 4. steer = sm['carControl'].actuators.torque vals = f"Gas: {round(gb * 100.)}%, Steer: {round(steer * 100.)}%" return NormalPermanentAlert("Joystick Mode", vals) -def longitudinal_maneuver_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def longitudinal_maneuver_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: ad = sm['alertDebug'] audible_alert = AudibleAlert.prompt if 'Active' in ad.alertText1 else AudibleAlert.none alert_status = AlertStatus.userPrompt if 'Active' in ad.alertText1 else AlertStatus.normal @@ -390,12 +390,12 @@ def longitudinal_maneuver_alert(CP: car.CarParams, CS: car.CarState, sm: messagi Priority.LOW, VisualAlert.none, audible_alert, 0.2) -def personality_changed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def personality_changed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: personality = str(personality).title() return NormalPermanentAlert(f"Driving Personality: {personality}", duration=1.5) -def invalid_lkas_setting_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def invalid_lkas_setting_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: text = "Toggle stock LKAS on or off to engage" if CP.brand == "tesla": text = "Switch to Traffic-Aware Cruise Control to engage" @@ -406,23 +406,23 @@ def invalid_lkas_setting_alert(CP: car.CarParams, CS: car.CarState, sm: messagin return NormalPermanentAlert("Invalid LKAS setting", text) -# FrogPilot variables -def custom_startup_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: - return StartupAlert(frogpilot_toggles.startup_alert_top, frogpilot_toggles.startup_alert_bottom, alert_status=FrogPilotAlertStatus.frogpilot) +# StarPilot variables +def custom_startup_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: + return StartupAlert(starpilot_toggles.startup_alert_top, starpilot_toggles.startup_alert_bottom, alert_status=StarPilotAlertStatus.starpilot) -def forcing_stop_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: - model_length = sm["frogpilotPlan"].forcingStopLength +def forcing_stop_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: + model_length = sm["starpilotPlan"].forcingStopLength model_length_msg = f"{model_length:.1f} meters" if metric else f"{model_length * CV.METER_TO_FOOT:.1f} feet" return Alert( f"Forcing the car to stop in {model_length_msg}", "Press the gas pedal or 'Resume' button to override", - FrogPilotAlertStatus.frogpilot, AlertSize.mid, + StarPilotAlertStatus.starpilot, AlertSize.mid, Priority.MID, VisualAlert.none, AudibleAlert.prompt, 1.) -def holiday_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def holiday_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: holiday_messages = { "new_years": "Happy New Year! 🎉", "valentines": "Happy Valentine's Day! ❤️", @@ -440,13 +440,13 @@ def holiday_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, } return Alert( - holiday_messages.get(frogpilot_toggles.current_holiday_theme, ""), + holiday_messages.get(starpilot_toggles.current_holiday_theme, ""), "", AlertStatus.normal, AlertSize.small, - Priority.LOWEST, VisualAlert.none, FrogPilotAudibleAlert.startup, 5.) + Priority.LOWEST, VisualAlert.none, StarPilotAudibleAlert.startup, 5.) -def nnff_loaded_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: +def nnff_loaded_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: model_name = Params().get("NNFFModelName") if model_name is None: return Alert( @@ -458,12 +458,12 @@ def nnff_loaded_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMast return Alert( "NNFF Torque Controller loaded with:", model_name, - FrogPilotAlertStatus.frogpilot, AlertSize.mid, + StarPilotAlertStatus.starpilot, AlertSize.mid, Priority.LOW, VisualAlert.none, AudibleAlert.engage, 5.0) -def no_lane_available_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, frogpilot_toggles: SimpleNamespace) -> Alert: - lane_width = sm["frogpilotPlan"].laneWidthLeft if sm["modelV2"].meta.laneChangeDirection == LaneChangeDirection.left else sm["frogpilotPlan"].laneWidthRight +def no_lane_available_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality, starpilot_toggles: SimpleNamespace) -> Alert: + lane_width = sm["starpilotPlan"].laneWidthLeft if sm["modelV2"].meta.laneChangeDirection == LaneChangeDirection.left else sm["starpilotPlan"].laneWidthRight lane_width_msg = f"{lane_width:.1f} Meters" if metric else f"{lane_width * CV.METER_TO_FOOT:.1f} Feet" return Alert( @@ -1104,9 +1104,9 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { }, } -# FrogPilot variables -FROGPILOT_EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { - FrogPilotEventName.blockUser: { +# StarPilot variables +STARPILOT_EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { + StarPilotEventName.blockUser: { ET.PERMANENT: Alert( "Don't use the 'Development' branch!", "Forcing you into 'Dashcam Mode' for your safety...", @@ -1114,35 +1114,35 @@ FROGPILOT_EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { Priority.HIGHEST, VisualAlert.none, AudibleAlert.warningImmediate, 1.), }, - FrogPilotEventName.customStartupAlert: { + StarPilotEventName.customStartupAlert: { ET.PERMANENT: custom_startup_alert, }, - FrogPilotEventName.forcingStop: { + StarPilotEventName.forcingStop: { ET.WARNING: forcing_stop_alert, }, - FrogPilotEventName.goatSteerSaturated: { + StarPilotEventName.goatSteerSaturated: { ET.WARNING: Alert( "JESUS TAKE THE WHEEL!!", "Turn Exceeds Steering Limit", AlertStatus.userPrompt, AlertSize.mid, - Priority.LOW, VisualAlert.steerRequired, FrogPilotAudibleAlert.goat, 2.), + Priority.LOW, VisualAlert.steerRequired, StarPilotAudibleAlert.goat, 2.), }, - FrogPilotEventName.greenLight: { + StarPilotEventName.greenLight: { ET.PERMANENT: Alert( "Light Turned Green", "", - FrogPilotAlertStatus.frogpilot, AlertSize.small, + StarPilotAlertStatus.starpilot, AlertSize.small, Priority.MID, VisualAlert.none, AudibleAlert.prompt, 3.), }, - FrogPilotEventName.holidayActive: { + StarPilotEventName.holidayActive: { ET.PERMANENT: holiday_alert, }, - FrogPilotEventName.laneChangeBlockedLoud: { + StarPilotEventName.laneChangeBlockedLoud: { ET.WARNING: Alert( "Car Detected in Blindspot", "", @@ -1150,61 +1150,61 @@ FROGPILOT_EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { Priority.LOW, VisualAlert.none, AudibleAlert.warningSoft, .1), }, - FrogPilotEventName.leadDeparting: { + StarPilotEventName.leadDeparting: { ET.PERMANENT: Alert( "Lead Departed", "", - FrogPilotAlertStatus.frogpilot, AlertSize.small, + StarPilotAlertStatus.starpilot, AlertSize.small, Priority.MID, VisualAlert.none, AudibleAlert.prompt, 3.), }, - FrogPilotEventName.nnffLoaded: { + StarPilotEventName.nnffLoaded: { ET.PERMANENT: nnff_loaded_alert, }, - FrogPilotEventName.noLaneAvailable: { + StarPilotEventName.noLaneAvailable: { ET.WARNING: no_lane_available_alert, }, - FrogPilotEventName.openpilotCrashed: { + StarPilotEventName.openpilotCrashed: { ET.IMMEDIATE_DISABLE: Alert( "openpilot crashed", - "Please post the 'Error Log' in the FrogPilot Discord!", + "Please post the 'Error Log' in the StarPilot Discord!", AlertStatus.critical, AlertSize.mid, Priority.HIGHEST, VisualAlert.none, AudibleAlert.prompt, .1), ET.NO_ENTRY: Alert( "openpilot crashed", - "Please post the 'Error Log' in the FrogPilot Discord!", + "Please post the 'Error Log' in the StarPilot Discord!", AlertStatus.critical, AlertSize.mid, Priority.HIGHEST, VisualAlert.none, AudibleAlert.prompt, .1), }, - FrogPilotEventName.speedLimitChanged: { + StarPilotEventName.speedLimitChanged: { ET.PERMANENT: Alert( "Speed limit changed", "", - FrogPilotAlertStatus.frogpilot, AlertSize.small, + StarPilotAlertStatus.starpilot, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.prompt, 3.), }, - FrogPilotEventName.trafficModeActive: { + StarPilotEventName.trafficModeActive: { ET.WARNING: Alert( "Traffic Mode enabled", "", - FrogPilotAlertStatus.frogpilot, AlertSize.small, + StarPilotAlertStatus.starpilot, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.prompt, 3.), }, - FrogPilotEventName.trafficModeInactive: { + StarPilotEventName.trafficModeInactive: { ET.WARNING: Alert( "Traffic Mode Disabled", "", - FrogPilotAlertStatus.frogpilot, AlertSize.small, + StarPilotAlertStatus.starpilot, AlertSize.small, Priority.LOW, VisualAlert.none, AudibleAlert.prompt, 3.), }, - FrogPilotEventName.turningLeft: { + StarPilotEventName.turningLeft: { ET.WARNING: Alert( "Turning Left", "", @@ -1212,7 +1212,7 @@ FROGPILOT_EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { Priority.LOWEST, VisualAlert.none, AudibleAlert.none, .1), }, - FrogPilotEventName.turningRight: { + StarPilotEventName.turningRight: { ET.WARNING: Alert( "Turning Right", "", @@ -1221,106 +1221,106 @@ FROGPILOT_EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = { }, # Random Events - FrogPilotEventName.accel30: { + StarPilotEventName.accel30: { ET.WARNING: Alert( "UwU u went a bit fast there!", "(⁄ ⁄•⁄ω⁄•⁄ ⁄)", - FrogPilotAlertStatus.frogpilot, AlertSize.mid, - Priority.LOW, VisualAlert.none, FrogPilotAudibleAlert.uwu, 4.), + StarPilotAlertStatus.starpilot, AlertSize.mid, + Priority.LOW, VisualAlert.none, StarPilotAudibleAlert.uwu, 4.), }, - FrogPilotEventName.accel35: { + StarPilotEventName.accel35: { ET.WARNING: Alert( "I ain't giving you no tree-fiddy", "You damn Loch Ness Monsta!", - FrogPilotAlertStatus.frogpilot, AlertSize.mid, - Priority.LOW, VisualAlert.none, FrogPilotAudibleAlert.nessie, 4.), + StarPilotAlertStatus.starpilot, AlertSize.mid, + Priority.LOW, VisualAlert.none, StarPilotAudibleAlert.nessie, 4.), }, - FrogPilotEventName.accel40: { + StarPilotEventName.accel40: { ET.WARNING: Alert( "Great Scott!", "🚗💨", - FrogPilotAlertStatus.frogpilot, AlertSize.mid, - Priority.LOW, VisualAlert.none, FrogPilotAudibleAlert.doc, 4.), + StarPilotAlertStatus.starpilot, AlertSize.mid, + Priority.LOW, VisualAlert.none, StarPilotAudibleAlert.doc, 4.), }, - FrogPilotEventName.dejaVuCurve: { + StarPilotEventName.dejaVuCurve: { ET.PERMANENT: Alert( "♬♪ Deja vu! ᕕ(⌐■_■)ᕗ ♪♬", "🏎️", - FrogPilotAlertStatus.frogpilot, AlertSize.mid, - Priority.LOW, VisualAlert.none, FrogPilotAudibleAlert.dejaVu, 4.), + StarPilotAlertStatus.starpilot, AlertSize.mid, + Priority.LOW, VisualAlert.none, StarPilotAudibleAlert.dejaVu, 4.), }, - FrogPilotEventName.firefoxSteerSaturated: { + StarPilotEventName.firefoxSteerSaturated: { ET.WARNING: Alert( "IE Has Stopped Responding...", "Turn Exceeds Steering Limit", AlertStatus.userPrompt, AlertSize.mid, - Priority.LOW, VisualAlert.steerRequired, FrogPilotAudibleAlert.firefox, 4.), + Priority.LOW, VisualAlert.steerRequired, StarPilotAudibleAlert.firefox, 4.), }, - FrogPilotEventName.hal9000: { + StarPilotEventName.hal9000: { ET.WARNING: Alert( "I'm sorry Dave", "I'm afraid I can't do that...", AlertStatus.normal, AlertSize.mid, - Priority.HIGH, VisualAlert.none, FrogPilotAudibleAlert.hal9000, 4.), + Priority.HIGH, VisualAlert.none, StarPilotAudibleAlert.hal9000, 4.), }, - FrogPilotEventName.openpilotCrashedRandomEvent: { + StarPilotEventName.openpilotCrashedRandomEvent: { ET.IMMEDIATE_DISABLE: Alert( "openpilot crashed 💩", - "Please post the 'Error Log' in the FrogPilot Discord!", + "Please post the 'Error Log' in the StarPilot Discord!", AlertStatus.normal, AlertSize.mid, - Priority.HIGHEST, VisualAlert.none, FrogPilotAudibleAlert.fart, 10.), + Priority.HIGHEST, VisualAlert.none, StarPilotAudibleAlert.fart, 10.), ET.NO_ENTRY: Alert( "openpilot crashed 💩", - "Please post the 'Error Log' in the FrogPilot Discord!", + "Please post the 'Error Log' in the StarPilot Discord!", AlertStatus.normal, AlertSize.mid, - Priority.HIGHEST, VisualAlert.none, FrogPilotAudibleAlert.fart, 10.), + Priority.HIGHEST, VisualAlert.none, StarPilotAudibleAlert.fart, 10.), }, - FrogPilotEventName.thisIsFineSteerSaturated: { + StarPilotEventName.thisIsFineSteerSaturated: { ET.WARNING: Alert( "This is fine ☕", "Turn Exceeds Steering Limit", AlertStatus.userPrompt, AlertSize.mid, - Priority.LOW, VisualAlert.steerRequired, FrogPilotAudibleAlert.thisIsFine, 2.), + Priority.LOW, VisualAlert.steerRequired, StarPilotAudibleAlert.thisIsFine, 2.), }, - FrogPilotEventName.toBeContinued: { + StarPilotEventName.toBeContinued: { ET.PERMANENT: Alert( "To be continued...", "⬅️", - FrogPilotAlertStatus.frogpilot, AlertSize.mid, - Priority.MID, VisualAlert.none, FrogPilotAudibleAlert.continued, 7.), + StarPilotAlertStatus.starpilot, AlertSize.mid, + Priority.MID, VisualAlert.none, StarPilotAudibleAlert.continued, 7.), }, - FrogPilotEventName.vCruise69: { + StarPilotEventName.vCruise69: { ET.WARNING: Alert( "Lol 69", "", - FrogPilotAlertStatus.frogpilot, AlertSize.small, - Priority.LOW, VisualAlert.none, FrogPilotAudibleAlert.noice, 2.), + StarPilotAlertStatus.starpilot, AlertSize.small, + Priority.LOW, VisualAlert.none, StarPilotAudibleAlert.noice, 2.), }, - FrogPilotEventName.yourFrogTriedToKillMe: { + StarPilotEventName.yourFrogTriedToKillMe: { ET.PERMANENT: Alert( "Your Frog tried to kill me...", "👺", - FrogPilotAlertStatus.frogpilot, AlertSize.mid, - Priority.MID, VisualAlert.none, FrogPilotAudibleAlert.angry, 5.), + StarPilotAlertStatus.starpilot, AlertSize.mid, + Priority.MID, VisualAlert.none, StarPilotAudibleAlert.angry, 5.), }, - FrogPilotEventName.youveGotMail: { + StarPilotEventName.youveGotMail: { ET.WARNING: Alert( "You've got mail! 📧", "", - FrogPilotAlertStatus.frogpilot, AlertSize.small, - Priority.LOW, VisualAlert.none, FrogPilotAudibleAlert.mail, 3.), + StarPilotAlertStatus.starpilot, AlertSize.small, + Priority.LOW, VisualAlert.none, StarPilotAudibleAlert.mail, 3.), }, } diff --git a/selfdrive/selfdrived/selfdrived.py b/selfdrive/selfdrived/selfdrived.py index 0698ae15..0c818bf0 100644 --- a/selfdrive/selfdrived/selfdrived.py +++ b/selfdrive/selfdrived/selfdrived.py @@ -27,8 +27,8 @@ from openpilot.selfdrive.selfdrived.alertmanager import AlertManager, set_offroa from openpilot.system.version import get_build_metadata from openpilot.system.hardware import HARDWARE -from openpilot.frogpilot.common.frogpilot_utilities import contains_event_type -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_utilities import contains_event_type +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles REPLAY = "REPLAY" in os.environ SIMULATION = "SIMULATION" in os.environ @@ -45,8 +45,8 @@ EventName = log.OnroadEvent.EventName ButtonType = car.CarState.ButtonEvent.Type SafetyModel = car.CarParams.SafetyModel -# FrogPilot variables -FrogPilotEventName = custom.FrogPilotOnroadEvent.EventName +# StarPilot variables +StarPilotEventName = custom.StarPilotOnroadEvent.EventName IGNORED_SAFETY_MODES = (SafetyModel.silent, SafetyModel.noOutput) @@ -132,7 +132,7 @@ class SelfdriveD: self.rk = Ratekeeper(100, print_delay_threshold=None) # Determine startup event - self.startup_event = FrogPilotEventName.customStartupAlert + self.startup_event = StarPilotEventName.customStartupAlert if HARDWARE.get_device_type() == 'mici': self.startup_event = None if not car_recognized: @@ -148,34 +148,34 @@ class SelfdriveD: elif self.CP.passive: self.events.add(EventName.dashcamMode, static=True) - # FrogPilot variables - self.sm = self.sm.extend(['frogpilotCarState', 'frogpilotPlan']) - self.pm = self.pm.extend(['frogpilotOnroadEvents', 'frogpilotSelfdriveState']) + # StarPilot variables + self.sm = self.sm.extend(['starpilotCarState', 'starpilotPlan']) + self.pm = self.pm.extend(['starpilotOnroadEvents', 'starpilotSelfdriveState']) - self.frogpilot_toggles = get_frogpilot_toggles() + self.starpilot_toggles = get_starpilot_toggles() - self.frogpilot_AM = AlertManager() - self.frogpilot_events = Events(frogpilot=True) + self.starpilot_AM = AlertManager() + self.starpilot_events = Events(starpilot=True) self.distance_pressed_previously = False self.display_timer = 0 - self.frogpilot_events_prev = [] + self.starpilot_events_prev = [] self.has_menu = self.CP.brand == "gm" and self.CP.carFingerprint not in CC_ONLY_CAR - self.FPCP = messaging.log_from_bytes(self.params.get("FrogPilotCarParams", block=True), custom.FrogPilotCarParams) + self.FPCP = messaging.log_from_bytes(self.params.get("StarPilotCarParams", block=True), custom.StarPilotCarParams) - if self.frogpilot_toggles.block_user: - self.startup_event = FrogPilotEventName.blockUser + if self.starpilot_toggles.block_user: + self.startup_event = StarPilotEventName.blockUser sentry.capture_block() def update_events(self, CS): """Compute onroadEvents from carState""" self.events.clear() - self.frogpilot_events.clear() + self.starpilot_events.clear() if self.sm['controlsState'].lateralControlState.which() == 'debugState': self.events.add(EventName.joystickDebug) @@ -187,8 +187,8 @@ class SelfdriveD: # Add startup event if self.startup_event is not None: - if self.startup_event in (FrogPilotEventName.blockUser, FrogPilotEventName.customStartupAlert): - self.frogpilot_events.add(self.startup_event) + if self.startup_event in (StarPilotEventName.blockUser, StarPilotEventName.customStartupAlert): + self.starpilot_events.add(self.startup_event) else: self.events.add(self.startup_event) self.startup_event = None @@ -294,8 +294,8 @@ class SelfdriveD: direction = self.sm['modelV2'].meta.laneChangeDirection if (CS.leftBlindspot and direction == LaneChangeDirection.left) or \ (CS.rightBlindspot and direction == LaneChangeDirection.right): - if self.frogpilot_toggles.loud_blindspot_alert: - self.frogpilot_events.add(FrogPilotEventName.laneChangeBlockedLoud) + if self.starpilot_toggles.loud_blindspot_alert: + self.starpilot_events.add(StarPilotEventName.laneChangeBlockedLoud) else: self.events.add(EventName.laneChangeBlocked) else: @@ -304,12 +304,12 @@ class SelfdriveD: # "No Lane Available" when the configured width threshold is not met. if direction == LaneChangeDirection.left: self.events.add(EventName.preLaneChangeLeft) - if self.sm['frogpilotPlan'].laneWidthLeft < self.frogpilot_toggles.lane_detection_width: - self.frogpilot_events.add(FrogPilotEventName.noLaneAvailable) + if self.sm['starpilotPlan'].laneWidthLeft < self.starpilot_toggles.lane_detection_width: + self.starpilot_events.add(StarPilotEventName.noLaneAvailable) elif direction == LaneChangeDirection.right: self.events.add(EventName.preLaneChangeRight) - if self.sm['frogpilotPlan'].laneWidthRight < self.frogpilot_toggles.lane_detection_width: - self.frogpilot_events.add(FrogPilotEventName.noLaneAvailable) + if self.sm['starpilotPlan'].laneWidthRight < self.starpilot_toggles.lane_detection_width: + self.starpilot_events.add(StarPilotEventName.noLaneAvailable) elif self.sm['modelV2'].meta.laneChangeState in (LaneChangeState.laneChangeStarting, LaneChangeState.laneChangeFinishing): self.events.add(EventName.laneChange) @@ -360,13 +360,13 @@ class SelfdriveD: self.events.add(EventName.usbError) if CS.canTimeout: self.events.add(EventName.canBusMissing) - elif not CS.canValid and not self.frogpilot_toggles.force_onroad: + elif not CS.canValid and not self.starpilot_toggles.force_onroad: self.events.add(EventName.canError) # generic catch-all. ideally, a more specific event should be added above instead - has_disable_events = contains_event_type(self.events, self.frogpilot_events, ET.NO_ENTRY) and \ - (contains_event_type(self.events, self.frogpilot_events, ET.SOFT_DISABLE) or - contains_event_type(self.events, self.frogpilot_events, ET.IMMEDIATE_DISABLE)) + has_disable_events = contains_event_type(self.events, self.starpilot_events, ET.NO_ENTRY) and \ + (contains_event_type(self.events, self.starpilot_events, ET.SOFT_DISABLE) or + contains_event_type(self.events, self.starpilot_events, ET.IMMEDIATE_DISABLE)) no_system_errors = (not has_disable_events) or (len(self.events) == num_events) if not self.sm.all_checks() and no_system_errors: if not self.sm.all_alive(): @@ -421,8 +421,8 @@ class SelfdriveD: commanded_torque_at_max = abs(lac.output) > 0.99 # TODO: lac.saturated includes speed and other checks, should be pulled out if undershooting and turning and (lac.saturated or commanded_torque_at_max): - if self.frogpilot_toggles.goat_scream_alert: - self.frogpilot_events.add(FrogPilotEventName.goatSteerSaturated) + if self.starpilot_toggles.goat_scream_alert: + self.starpilot_events.add(StarPilotEventName.goatSteerSaturated) else: self.events.add(EventName.steerSaturated) @@ -450,14 +450,14 @@ class SelfdriveD: if self.CP.openpilotLongitudinalControl: distance_pressed = False - if self.frogpilot_toggles.personality_profile_via_distance: + if self.starpilot_toggles.personality_profile_via_distance: distance_pressed |= any(not be.pressed and be.type == ButtonType.gapAdjustCruise for be in CS.buttonEvents) - distance_pressed &= not (self.sm['frogpilotCarState'].distanceLongPressed or self.sm['frogpilotCarState'].distanceVeryLongPressed) - if self.frogpilot_toggles.personality_profile_via_distance_long: - distance_pressed |= self.sm['frogpilotCarState'].distanceLongPressed - if self.frogpilot_toggles.personality_profile_via_distance_very_long: - distance_pressed |= self.sm['frogpilotCarState'].distanceVeryLongPressed - if self.frogpilot_toggles.personality_profile_via_lkas: + distance_pressed &= not (self.sm['starpilotCarState'].distanceLongPressed or self.sm['starpilotCarState'].distanceVeryLongPressed) + if self.starpilot_toggles.personality_profile_via_distance_long: + distance_pressed |= self.sm['starpilotCarState'].distanceLongPressed + if self.starpilot_toggles.personality_profile_via_distance_very_long: + distance_pressed |= self.sm['starpilotCarState'].distanceVeryLongPressed + if self.starpilot_toggles.personality_profile_via_lkas: distance_pressed |= any(not be.pressed and be.type == ButtonType.lkas for be in CS.buttonEvents) if not distance_pressed and self.distance_pressed_previously: @@ -471,13 +471,13 @@ class SelfdriveD: self.display_timer -= 1 - # FrogPilot variables - self.frogpilot_events.add_from_msg(self.sm['frogpilotPlan'].frogpilotEvents) + # StarPilot variables + self.starpilot_events.add_from_msg(self.sm['starpilotPlan'].starpilotEvents) - if self.frogpilot_toggles.conditional_experimental_mode: - self.experimental_mode = self.sm['frogpilotPlan'].experimentalMode + if self.starpilot_toggles.conditional_experimental_mode: + self.experimental_mode = self.sm['starpilotPlan'].experimentalMode else: - self.experimental_mode |= self.sm['frogpilotPlan'].experimentalMode + self.experimental_mode |= self.sm['starpilotPlan'].experimentalMode def data_sample(self): _car_state = messaging.recv_one(self.car_state_sock) @@ -536,16 +536,16 @@ class SelfdriveD: pers = LONGITUDINAL_PERSONALITY_MAP[self.personality] alerts = self.events.create_alerts(self.state_machine.current_alert_types, [self.CP, CS, self.sm, self.is_metric, self.state_machine.soft_disable_timer, pers, - self.frogpilot_toggles]) + self.starpilot_toggles]) self.AM.add_many(self.sm.frame, alerts) self.AM.process_alerts(self.sm.frame, clear_event_types) - # FrogPilot variables - frogpilot_alerts = self.frogpilot_events.create_alerts(self.state_machine.current_alert_types, [self.CP, CS, self.sm, self.is_metric, + # StarPilot variables + starpilot_alerts = self.starpilot_events.create_alerts(self.state_machine.current_alert_types, [self.CP, CS, self.sm, self.is_metric, self.state_machine.soft_disable_timer, pers, - self.frogpilot_toggles]) - self.frogpilot_AM.add_many(self.sm.frame, frogpilot_alerts) - self.frogpilot_AM.process_alerts(self.sm.frame, clear_event_types) + self.starpilot_toggles]) + self.starpilot_AM.add_many(self.sm.frame, starpilot_alerts) + self.starpilot_AM.process_alerts(self.sm.frame, clear_event_types) def publish_selfdriveState(self, CS): # selfdriveState @@ -555,7 +555,7 @@ class SelfdriveD: ss.enabled = self.enabled ss.active = self.active ss.state = self.state_machine.state - ss.engageable = not contains_event_type(self.events, self.frogpilot_events, ET.NO_ENTRY) + ss.engageable = not contains_event_type(self.events, self.starpilot_events, ET.NO_ENTRY) ss.experimentalMode = self.experimental_mode ss.personality = self.personality @@ -577,47 +577,47 @@ class SelfdriveD: self.pm.send('onroadEvents', ce_send) self.events_prev = self.events.names.copy() - # FrogPilot variables - fpss_msg = messaging.new_message('frogpilotSelfdriveState') + # StarPilot variables + fpss_msg = messaging.new_message('starpilotSelfdriveState') fpss_msg.valid = True - fpss = fpss_msg.frogpilotSelfdriveState + fpss = fpss_msg.starpilotSelfdriveState - fpss.alertText1 = self.frogpilot_AM.current_alert.alert_text_1 - fpss.alertText2 = self.frogpilot_AM.current_alert.alert_text_2 - fpss.alertSize = self.frogpilot_AM.current_alert.alert_size - fpss.alertStatus = self.frogpilot_AM.current_alert.alert_status - fpss.alertType = self.frogpilot_AM.current_alert.alert_type - fpss.alertSound = self.frogpilot_AM.current_alert.audible_alert + fpss.alertText1 = self.starpilot_AM.current_alert.alert_text_1 + fpss.alertText2 = self.starpilot_AM.current_alert.alert_text_2 + fpss.alertSize = self.starpilot_AM.current_alert.alert_size + fpss.alertStatus = self.starpilot_AM.current_alert.alert_status + fpss.alertType = self.starpilot_AM.current_alert.alert_type + fpss.alertSound = self.starpilot_AM.current_alert.audible_alert - self.pm.send('frogpilotSelfdriveState', fpss_msg) + self.pm.send('starpilotSelfdriveState', fpss_msg) - if (self.sm.frame % int(1. / DT_CTRL) == 0) or (self.frogpilot_events.names != self.frogpilot_events_prev): - fpce_send = messaging.new_message('frogpilotOnroadEvents', len(self.frogpilot_events)) + if (self.sm.frame % int(1. / DT_CTRL) == 0) or (self.starpilot_events.names != self.starpilot_events_prev): + fpce_send = messaging.new_message('starpilotOnroadEvents', len(self.starpilot_events)) fpce_send.valid = True - fpce_send.frogpilotOnroadEvents = self.frogpilot_events.to_msg() - self.pm.send('frogpilotOnroadEvents', fpce_send) - self.frogpilot_events_prev = self.frogpilot_events.names.copy() + fpce_send.starpilotOnroadEvents = self.starpilot_events.to_msg() + self.pm.send('starpilotOnroadEvents', fpce_send) + self.starpilot_events_prev = self.starpilot_events.names.copy() def step(self): CS = self.data_sample() self.update_events(CS) if not self.CP.passive and self.initialized: - self.enabled, self.active = self.state_machine.update(self.events, self.frogpilot_events, self.sm['frogpilotCarState'].alwaysOnLateralEnabled) + self.enabled, self.active = self.state_machine.update(self.events, self.starpilot_events, self.sm['starpilotCarState'].alwaysOnLateralEnabled) self.update_alerts(CS) self.publish_selfdriveState(CS) self.CS_prev = CS - # FrogPilot variables - self.frogpilot_toggles = get_frogpilot_toggles(self.sm) + # StarPilot variables + self.starpilot_toggles = get_starpilot_toggles(self.sm) def params_thread(self, evt): while not evt.is_set(): self.is_metric = self.params.get_bool("IsMetric") self.is_ldw_enabled = self.params.get_bool("IsLdwEnabled") self.disengage_on_accelerator = self.params.get_bool("DisengageOnAccelerator") - if not self.frogpilot_toggles.conditional_experimental_mode: + if not self.starpilot_toggles.conditional_experimental_mode: self.experimental_mode = self.params.get_bool("ExperimentalMode") and self.CP.openpilotLongitudinalControl self.personality = self.params.get("LongitudinalPersonality", return_default=True) time.sleep(0.1) diff --git a/selfdrive/selfdrived/state.py b/selfdrive/selfdrived/state.py index 244ebc26..d05d9a5b 100644 --- a/selfdrive/selfdrived/state.py +++ b/selfdrive/selfdrived/state.py @@ -2,7 +2,7 @@ from cereal import log from openpilot.selfdrive.selfdrived.events import Events, ET from openpilot.common.realtime import DT_CTRL -from openpilot.frogpilot.common.frogpilot_utilities import contains_event_type +from openpilot.starpilot.common.starpilot_utilities import contains_event_type State = log.SelfdriveState.OpenpilotState @@ -16,7 +16,7 @@ class StateMachine: self.state = State.disabled self.soft_disable_timer = 0 - def update(self, events: Events, frogpilot_events: Events, alwaysOnLateralEnabled: bool): + def update(self, events: Events, starpilot_events: Events, alwaysOnLateralEnabled: bool): # decrement the soft disable timer at every step, as it's reset on # entrance in SOFT_DISABLING state self.soft_disable_timer = max(0, self.soft_disable_timer - 1) @@ -26,29 +26,29 @@ class StateMachine: # ENABLED, SOFT DISABLING, PRE ENABLING, OVERRIDING if self.state != State.disabled: # user and immediate disable always have priority in a non-disabled state - if contains_event_type(events, frogpilot_events, ET.USER_DISABLE): + if contains_event_type(events, starpilot_events, ET.USER_DISABLE): self.state = State.disabled self.current_alert_types.append(ET.USER_DISABLE) - elif contains_event_type(events, frogpilot_events, ET.IMMEDIATE_DISABLE): + elif contains_event_type(events, starpilot_events, ET.IMMEDIATE_DISABLE): self.state = State.disabled self.current_alert_types.append(ET.IMMEDIATE_DISABLE) else: # ENABLED if self.state == State.enabled: - if contains_event_type(events, frogpilot_events, ET.SOFT_DISABLE): + if contains_event_type(events, starpilot_events, ET.SOFT_DISABLE): self.state = State.softDisabling self.soft_disable_timer = int(SOFT_DISABLE_TIME / DT_CTRL) self.current_alert_types.append(ET.SOFT_DISABLE) - elif contains_event_type(events, frogpilot_events, ET.OVERRIDE_LATERAL) or contains_event_type(events, frogpilot_events, ET.OVERRIDE_LONGITUDINAL): + elif contains_event_type(events, starpilot_events, ET.OVERRIDE_LATERAL) or contains_event_type(events, starpilot_events, ET.OVERRIDE_LONGITUDINAL): self.state = State.overriding self.current_alert_types += [ET.OVERRIDE_LATERAL, ET.OVERRIDE_LONGITUDINAL] # SOFT DISABLING elif self.state == State.softDisabling: - if not contains_event_type(events, frogpilot_events, ET.SOFT_DISABLE): + if not contains_event_type(events, starpilot_events, ET.SOFT_DISABLE): # no more soft disabling condition, so go back to ENABLED self.state = State.enabled @@ -60,32 +60,32 @@ class StateMachine: # PRE ENABLING elif self.state == State.preEnabled: - if not contains_event_type(events, frogpilot_events, ET.PRE_ENABLE): + if not contains_event_type(events, starpilot_events, ET.PRE_ENABLE): self.state = State.enabled else: self.current_alert_types.append(ET.PRE_ENABLE) # OVERRIDING elif self.state == State.overriding: - if contains_event_type(events, frogpilot_events, ET.SOFT_DISABLE): + if contains_event_type(events, starpilot_events, ET.SOFT_DISABLE): self.state = State.softDisabling self.soft_disable_timer = int(SOFT_DISABLE_TIME / DT_CTRL) self.current_alert_types.append(ET.SOFT_DISABLE) - elif not (contains_event_type(events, frogpilot_events, ET.OVERRIDE_LATERAL) or contains_event_type(events, frogpilot_events, ET.OVERRIDE_LONGITUDINAL)): + elif not (contains_event_type(events, starpilot_events, ET.OVERRIDE_LATERAL) or contains_event_type(events, starpilot_events, ET.OVERRIDE_LONGITUDINAL)): self.state = State.enabled else: self.current_alert_types += [ET.OVERRIDE_LATERAL, ET.OVERRIDE_LONGITUDINAL] # DISABLED elif self.state == State.disabled: - if contains_event_type(events, frogpilot_events, ET.ENABLE): - if contains_event_type(events, frogpilot_events, ET.NO_ENTRY): + if contains_event_type(events, starpilot_events, ET.ENABLE): + if contains_event_type(events, starpilot_events, ET.NO_ENTRY): self.current_alert_types.append(ET.NO_ENTRY) else: - if contains_event_type(events, frogpilot_events, ET.PRE_ENABLE): + if contains_event_type(events, starpilot_events, ET.PRE_ENABLE): self.state = State.preEnabled - elif contains_event_type(events, frogpilot_events, ET.OVERRIDE_LATERAL) or contains_event_type(events, frogpilot_events, ET.OVERRIDE_LONGITUDINAL): + elif contains_event_type(events, starpilot_events, ET.OVERRIDE_LATERAL) or contains_event_type(events, starpilot_events, ET.OVERRIDE_LONGITUDINAL): self.state = State.overriding else: self.state = State.enabled diff --git a/selfdrive/test/longitudinal_maneuvers/plant.py b/selfdrive/test/longitudinal_maneuvers/plant.py index 19027b6e..ddef99f7 100755 --- a/selfdrive/test/longitudinal_maneuvers/plant.py +++ b/selfdrive/test/longitudinal_maneuvers/plant.py @@ -54,7 +54,7 @@ class Plant: from opendbc.car.honda.interface import CarInterface self.planner = LongitudinalPlanner(CarInterface.get_non_essential_params(CAR.HONDA_CIVIC), init_v=self.speed) - self.frogpilot_toggles = SimpleNamespace( + self.starpilot_toggles = SimpleNamespace( taco_tune=False, model_version=None, stop_distance=6.0, @@ -136,7 +136,7 @@ class Plant: car_control.carControl.orientationNED = [0., float(pitch), 0.] # ******** get controlsState messages for plotting *** - frogpilot_plan = SimpleNamespace( + starpilot_plan = SimpleNamespace( vCruise=float(v_cruise), minAcceleration=float(ACCEL_MIN), maxAcceleration=float(ACCEL_MAX), @@ -159,8 +159,8 @@ class Plant: 'selfdriveState': ss.selfdriveState, 'liveParameters': lp.liveParameters, 'modelV2': model.modelV2, - 'frogpilotPlan': frogpilot_plan} - self.planner.update(sm, self.frogpilot_toggles) + 'starpilotPlan': starpilot_plan} + self.planner.update(sm, self.starpilot_toggles) self.acceleration = self.planner.output_a_target self.speed = self.speed + self.acceleration * self.ts self.should_stop = self.planner.output_should_stop diff --git a/selfdrive/ui/SConscript b/selfdrive/ui/SConscript index fed650d3..ef807752 100644 --- a/selfdrive/ui/SConscript +++ b/selfdrive/ui/SConscript @@ -4,7 +4,7 @@ Import('env', 'qt_env', 'arch', 'common', 'messaging', 'visionipc', 'transformat base_libs = [common, messaging, visionipc, transformations, 'm', 'OpenCL', 'ssl', 'crypto', 'pthread'] + qt_env["LIBS"] -# FrogPilot variables +# StarPilot variables base_libs += ['avcodec', 'avformat', 'avutil', 'swresample', 'yuv', 'OmxCore'] if arch == 'larch64': @@ -26,9 +26,9 @@ widgets_src = ["qt/widgets/input.cc", "qt/widgets/wifi.cc", "qt/prime_state.cc", "qt/widgets/scrollview.cc", "qt/widgets/cameraview.cc", "#third_party/qrcode/QrCode.cc", "qt/request_repeater.cc", "qt/qt_window.cc", "qt/network/networking.cc", "qt/network/wifi_manager.cc"] -# FrogPilot variables -frogpilot_widgets_src = ["../../frogpilot/ui/qt/widgets/frogpilot_controls.cc"] -widgets_src += frogpilot_widgets_src +# StarPilot variables +starpilot_widgets_src = ["../../starpilot/ui/qt/widgets/starpilot_controls.cc"] +widgets_src += starpilot_widgets_src widgets = qt_env.Library("qt_widgets", widgets_src, LIBS=base_libs) Export('widgets') @@ -41,24 +41,24 @@ qt_src = ["main.cc", "ui.cc", "qt/sidebar.cc", "qt/body.cc", "qt/onroad/onroad_home.cc", "qt/onroad/annotated_camera.cc", "qt/onroad/model.cc", "qt/onroad/buttons.cc", "qt/onroad/alerts.cc", "qt/onroad/driver_monitoring.cc", "qt/onroad/hud.cc"] -# FrogPilot variables -qt_env['CPPPATH'] += ["../../frogpilot/ui/screenrecorder/openmax/include/"] +# StarPilot variables +qt_env['CPPPATH'] += ["../../starpilot/ui/screenrecorder/openmax/include/"] -frogpilot_src = ["../../frogpilot/ui/frogpilot_ui.cc", "../../frogpilot/ui/qt/offroad/data_settings.cc", - "../../frogpilot/ui/qt/offroad/device_settings.cc", "../../frogpilot/ui/qt/offroad/frogpilot_settings.cc", - "../../frogpilot/ui/qt/offroad/expandable_multi_option_dialog.cc", - "../../frogpilot/ui/qt/offroad/lateral_settings.cc", "../../frogpilot/ui/qt/offroad/longitudinal_settings.cc", - "../../frogpilot/ui/qt/offroad/maps_settings.cc", "../../frogpilot/ui/qt/offroad/model_settings.cc", - "../../frogpilot/ui/qt/offroad/navigation_settings.cc", "../../frogpilot/ui/qt/offroad/sounds_settings.cc", - "../../frogpilot/ui/qt/offroad/theme_settings.cc", "../../frogpilot/ui/qt/offroad/utilities.cc", - "../../frogpilot/ui/qt/offroad/vehicle_settings.cc", "../../frogpilot/ui/qt/offroad/visual_settings.cc", - "../../frogpilot/ui/qt/offroad/wheel_settings.cc", "../../frogpilot/ui/qt/onroad/frogpilot_annotated_camera.cc", - "../../frogpilot/ui/qt/onroad/frogpilot_buttons.cc", "../../frogpilot/ui/qt/onroad/frogpilot_onroad.cc", - "../../frogpilot/ui/qt/widgets/developer_sidebar.cc", "../../frogpilot/ui/qt/widgets/drive_stats.cc", - "../../frogpilot/ui/qt/widgets/drive_summary.cc", - "../../frogpilot/ui/qt/widgets/navigation_functions.cc", - "../../frogpilot/ui/screenrecorder/omx_encoder.cc", "../../frogpilot/ui/screenrecorder/screenrecorder.cc"] -qt_src += frogpilot_src +starpilot_src = ["../../starpilot/ui/starpilot_ui.cc", "../../starpilot/ui/qt/offroad/data_settings.cc", + "../../starpilot/ui/qt/offroad/device_settings.cc", "../../starpilot/ui/qt/offroad/starpilot_settings.cc", + "../../starpilot/ui/qt/offroad/expandable_multi_option_dialog.cc", + "../../starpilot/ui/qt/offroad/lateral_settings.cc", "../../starpilot/ui/qt/offroad/longitudinal_settings.cc", + "../../starpilot/ui/qt/offroad/maps_settings.cc", "../../starpilot/ui/qt/offroad/model_settings.cc", + "../../starpilot/ui/qt/offroad/navigation_settings.cc", "../../starpilot/ui/qt/offroad/sounds_settings.cc", + "../../starpilot/ui/qt/offroad/theme_settings.cc", "../../starpilot/ui/qt/offroad/utilities.cc", + "../../starpilot/ui/qt/offroad/vehicle_settings.cc", "../../starpilot/ui/qt/offroad/visual_settings.cc", + "../../starpilot/ui/qt/offroad/wheel_settings.cc", "../../starpilot/ui/qt/onroad/starpilot_annotated_camera.cc", + "../../starpilot/ui/qt/onroad/starpilot_buttons.cc", "../../starpilot/ui/qt/onroad/starpilot_onroad.cc", + "../../starpilot/ui/qt/widgets/developer_sidebar.cc", "../../starpilot/ui/qt/widgets/drive_stats.cc", + "../../starpilot/ui/qt/widgets/drive_summary.cc", + "../../starpilot/ui/qt/widgets/navigation_functions.cc", + "../../starpilot/ui/screenrecorder/omx_encoder.cc", "../../starpilot/ui/screenrecorder/screenrecorder.cc"] +qt_src += starpilot_src # build translation files with open(File("translations/languages.json").abspath) as f: diff --git a/selfdrive/ui/layouts/settings/settings.py b/selfdrive/ui/layouts/settings/settings.py index 9c6fec8b..0f5ec198 100644 --- a/selfdrive/ui/layouts/settings/settings.py +++ b/selfdrive/ui/layouts/settings/settings.py @@ -56,7 +56,7 @@ class SettingsLayout(Widget): self._current_panel = PanelType.DEVICE # Panel depth tracking for hierarchical back navigation - # 0 = top level (settings main), 1+ = sub-panels (FrogPilot categories) + # 0 = top level (settings main), 1+ = sub-panels (StarPilot categories) self._panel_depth = 0 # Panel configuration diff --git a/selfdrive/ui/layouts/settings/starpilot/data.py b/selfdrive/ui/layouts/settings/starpilot/data.py index 965bcd46..ab342151 100644 --- a/selfdrive/ui/layouts/settings/starpilot/data.py +++ b/selfdrive/ui/layouts/settings/starpilot/data.py @@ -14,6 +14,14 @@ from openpilot.system.ui.widgets.selection_dialog import SelectionDialog from openpilot.system.ui.widgets.input_dialog import InputDialog from openpilot.selfdrive.ui.layouts.settings.starpilot.panel import StarPilotPanel +LEGACY_STARPILOT_PARAM_RENAMES = { + "FrogPilotApiToken": "StarPilotApiToken", + "FrogPilotCarParams": "StarPilotCarParams", + "FrogPilotCarParamsPersistent": "StarPilotCarParamsPersistent", + "FrogPilotDongleId": "StarPilotDongleId", + "FrogPilotStats": "StarPilotStats", +} + class StarPilotDataLayout(StarPilotPanel): def __init__(self): @@ -190,7 +198,16 @@ class StarPilotToggleBackupsLayout(StarPilotPanel): def on_confirm(r2): if r2 == DialogResult.CONFIRM: src = Path(f"/data/toggle_backups/{val}") + params_dir = Path("/data/params/d") + for old_key, new_key in LEGACY_STARPILOT_PARAM_RENAMES.items(): + if (src / old_key).exists(): + (params_dir / new_key).unlink(missing_ok=True) shutil.copytree(str(src), "/data/params/d", dirs_exist_ok=True) + for old_key, new_key in LEGACY_STARPILOT_PARAM_RENAMES.items(): + old_path = params_dir / old_key + new_path = params_dir / new_key + if old_path.exists(): + old_path.replace(new_path) gui_app.set_modal_overlay(alert_dialog(tr("Toggles restored."))) self._rebuild_grid() diff --git a/selfdrive/ui/layouts/settings/starpilot/driving_model.py b/selfdrive/ui/layouts/settings/starpilot/driving_model.py index a7fa793f..45c1b662 100644 --- a/selfdrive/ui/layouts/settings/starpilot/driving_model.py +++ b/selfdrive/ui/layouts/settings/starpilot/driving_model.py @@ -5,7 +5,7 @@ import threading from pathlib import Path from openpilot.selfdrive.ui.ui_state import ui_state -from openpilot.frogpilot.assets.model_manager import ModelManager +from openpilot.starpilot.assets.model_manager import ModelManager from openpilot.system.hardware import HARDWARE, PC from openpilot.system.ui.lib.application import gui_app from openpilot.system.ui.lib.multilang import tr, tr_noop @@ -19,9 +19,9 @@ class StarPilotDrivingModelLayout(StarPilotPanel): super().__init__() if PC: - self._model_dir = Path(os.path.expanduser("~/.comma/frogpilot/data/models")) + self._model_dir = Path(os.path.expanduser("~/.comma/starpilot/data/models")) else: - self._model_dir = Path("/data/frogpilot/models") + self._model_dir = Path("/data/starpilot/models") self._model_dir.mkdir(parents=True, exist_ok=True) self._available_models = [] diff --git a/selfdrive/ui/layouts/settings/starpilot/sounds.py b/selfdrive/ui/layouts/settings/starpilot/sounds.py index 258129b5..e92cdf49 100644 --- a/selfdrive/ui/layouts/settings/starpilot/sounds.py +++ b/selfdrive/ui/layouts/settings/starpilot/sounds.py @@ -3,7 +3,7 @@ import subprocess from pathlib import Path from openpilot.common.basedir import BASEDIR -from openpilot.frogpilot.common.frogpilot_variables import ACTIVE_THEME_PATH +from openpilot.starpilot.common.starpilot_variables import ACTIVE_THEME_PATH from openpilot.system.ui.lib.application import gui_app from openpilot.system.ui.lib.multilang import tr, tr_noop from openpilot.system.ui.widgets import DialogResult diff --git a/selfdrive/ui/layouts/settings/starpilot/themes.py b/selfdrive/ui/layouts/settings/starpilot/themes.py index e570de01..c76d42ba 100644 --- a/selfdrive/ui/layouts/settings/starpilot/themes.py +++ b/selfdrive/ui/layouts/settings/starpilot/themes.py @@ -11,7 +11,7 @@ from openpilot.system.ui.widgets.selection_dialog import SelectionDialog from openpilot.selfdrive.ui.layouts.settings.starpilot.panel import StarPilotPanel if HARDWARE.get_device_type() == "pc": - THEME_SAVE_PATH = Path(Paths.comma_home()) / "frogpilot" / "data" / "themes" + THEME_SAVE_PATH = Path(Paths.comma_home()) / "starpilot" / "data" / "themes" else: THEME_SAVE_PATH = Path("/data/themes") @@ -142,12 +142,12 @@ class StarPilotThemesLayout(StarPilotPanel): self._rebuild_grid() def _on_startup_alert(self): - options = ["Stock", "FrogPilot", "Clear"] + options = ["Stock", "StarPilot", "Clear"] current_top = self._params.get("StartupMessageTop", encoding='utf-8') or "" if current_top == "Be ready to take over at any time": current = "Stock" elif current_top == "Hop in and buckle up!": - current = "FrogPilot" + current = "StarPilot" else: current = "Clear" @@ -156,7 +156,7 @@ class StarPilotThemesLayout(StarPilotPanel): if val == "Stock": self._params.put("StartupMessageTop", "Be ready to take over at any time") self._params.put("StartupMessageBottom", "Always keep hands on wheel and eyes on road") - elif val == "FrogPilot": + elif val == "StarPilot": self._params.put("StartupMessageTop", "Hop in and buckle up!") self._params.put("StartupMessageBottom", "Human-tested, frog-approved") else: diff --git a/selfdrive/ui/layouts/settings/starpilot/utilities.py b/selfdrive/ui/layouts/settings/starpilot/utilities.py index 22b5a64a..b156421d 100644 --- a/selfdrive/ui/layouts/settings/starpilot/utilities.py +++ b/selfdrive/ui/layouts/settings/starpilot/utilities.py @@ -12,7 +12,7 @@ from openpilot.selfdrive.ui.layouts.settings.starpilot.panel import StarPilotPan EXCLUDED_KEYS = { "AvailableModels", "AvailableModelNames", - "FrogPilotStats", + "StarPilotStats", "GithubSshKeys", "GithubUsername", "MapBoxRequests", @@ -54,13 +54,6 @@ class StarPilotUtilitiesLayout(StarPilotPanel): "on_click": self._on_force_drive_state, "color": "#FA6800", }, - { - "title": tr_noop("The Pond"), - "type": "value", - "get_value": lambda: tr("Paired") if self._params.get_bool("PondPaired") else tr("Not paired"), - "on_click": self._on_pond_clicked, - "color": "#FA6800", - }, {"title": tr_noop("Report Issue"), "type": "hub", "on_click": self._on_report_issue, "color": "#FA6800"}, {"title": tr_noop("Reset to Defaults"), "type": "hub", "on_click": self._on_reset_defaults, "color": "#FA6800"}, {"title": tr_noop("Reset to Stock"), "type": "hub", "on_click": self._on_reset_stock, "color": "#FA6800"}, @@ -101,20 +94,6 @@ class StarPilotUtilitiesLayout(StarPilotPanel): current = self._get_force_drive_state() gui_app.set_modal_overlay(SelectionDialog(tr("Force Drive State"), options, current, on_close=on_select)) - def _on_pond_clicked(self): - paired = self._params.get_bool("PondPaired") - if paired: - - def on_unpair(res): - if res == DialogResult.CONFIRM: - self._params.put_bool("PondPaired", False) - gui_app.set_modal_overlay(alert_dialog(tr("Unpaired from The Pond."))) - self._rebuild_grid() - - gui_app.set_modal_overlay(ConfirmDialog(tr("Unpair from The Pond?"), tr("Unpair"), on_close=on_unpair)) - else: - gui_app.set_modal_overlay(alert_dialog(tr("Visit frogpilot.com/the_pond to pair your device."))) - def _on_report_issue(self): def on_category(res, val): if res != DialogResult.CONFIRM: diff --git a/selfdrive/ui/lib/starpilot_state.py b/selfdrive/ui/lib/starpilot_state.py index 3e46bf84..0b907432 100644 --- a/selfdrive/ui/lib/starpilot_state.py +++ b/selfdrive/ui/lib/starpilot_state.py @@ -110,7 +110,7 @@ class StarPilotState: # Read starpilot_toggles from params memory or scene try: - starpilot_toggles = json.loads(self.params.get("FrogPilotToggles", encoding="utf-8") or "{}") + starpilot_toggles = json.loads(self.params.get("StarPilotToggles", encoding="utf-8") or "{}") except: starpilot_toggles = {} @@ -171,11 +171,11 @@ class StarPilotState: elif PC: self._apply_desktop_fallback(starpilot_toggles) - # 2. Parse FrogPilotCarParamsPersistent - fpcp_bytes = self.params.get("FrogPilotCarParamsPersistent") + # 2. Parse StarPilotCarParamsPersistent + fpcp_bytes = self.params.get("StarPilotCarParamsPersistent") if fpcp_bytes is not None: try: - FPCP = messaging.log_from_bytes(fpcp_bytes, custom.FrogPilotCarParams) + FPCP = messaging.log_from_bytes(fpcp_bytes, custom.StarPilotCarParams) self.car_state.canUsePedal = FPCP.canUsePedal self.car_state.canUseSDSU = FPCP.canUseSDSU self.car_state.openpilotLongitudinalControlDisabled = FPCP.openpilotLongitudinalControlDisabled diff --git a/selfdrive/ui/mici/layouts/home.py b/selfdrive/ui/mici/layouts/home.py index 44654356..83c0dd14 100644 --- a/selfdrive/ui/mici/layouts/home.py +++ b/selfdrive/ui/mici/layouts/home.py @@ -7,7 +7,7 @@ from collections.abc import Callable from openpilot.system.ui.widgets.label import gui_label, MiciLabel, UnifiedLabel from openpilot.system.ui.widgets import Widget from openpilot.system.ui.lib.application import gui_app, FontWeight, DEFAULT_TEXT_COLOR, MousePos -from openpilot.frogpilot.common.frogpilot_variables import MODELS_PATH +from openpilot.starpilot.common.starpilot_variables import MODELS_PATH from openpilot.selfdrive.ui.ui_state import ui_state from openpilot.system.ui.text import wrap_text from openpilot.system.version import training_version, RELEASE_BRANCHES diff --git a/selfdrive/ui/mici/layouts/settings/device.py b/selfdrive/ui/mici/layouts/settings/device.py index 33a21d16..a774560f 100644 --- a/selfdrive/ui/mici/layouts/settings/device.py +++ b/selfdrive/ui/mici/layouts/settings/device.py @@ -227,7 +227,7 @@ class GalaxyBigButton(BigButton): def __init__(self): super().__init__("galaxy", "", gui_app.starpilot_texture("../system/the_pond/assets/images/main_logo.png", 64, 64)) - self._galaxy_dir = Path(Paths.comma_home()) / "frogpilot" / "data" / "galaxy" if PC else Path("/data/galaxy") + self._galaxy_dir = Path(Paths.comma_home()) / "starpilot" / "data" / "galaxy" if PC else Path("/data/galaxy") self._auth_path = self._galaxy_dir / "glxyauth" self._session_path = self._galaxy_dir / "glxysession" self._slug_path = self._galaxy_dir / "glxyslug" diff --git a/selfdrive/ui/mici/layouts/settings/driving_model.py b/selfdrive/ui/mici/layouts/settings/driving_model.py index eae6cdd2..eab57a22 100644 --- a/selfdrive/ui/mici/layouts/settings/driving_model.py +++ b/selfdrive/ui/mici/layouts/settings/driving_model.py @@ -7,13 +7,13 @@ from dataclasses import dataclass from collections.abc import Callable from openpilot.common.params import Params -from openpilot.frogpilot.assets.model_manager import ( +from openpilot.starpilot.assets.model_manager import ( CANCEL_DOWNLOAD_PARAM, DOWNLOAD_PROGRESS_PARAM, ModelManager, TINYGRAD_VERSIONS, ) -from openpilot.frogpilot.common.frogpilot_variables import MODELS_PATH +from openpilot.starpilot.common.starpilot_variables import MODELS_PATH from openpilot.selfdrive.ui.mici.widgets.button import BigButton from openpilot.selfdrive.ui.mici.widgets.dialog import BigDialog, BigDialogBase, BigMultiOptionDialog from openpilot.selfdrive.ui.ui_state import ui_state diff --git a/selfdrive/ui/moc_ui.cc b/selfdrive/ui/moc_ui.cc index 08c7432e..72421f5f 100644 --- a/selfdrive/ui/moc_ui.cc +++ b/selfdrive/ui/moc_ui.cc @@ -35,7 +35,7 @@ QT_MOC_LITERAL(0, 0, 7), // "UIState" QT_MOC_LITERAL(1, 8, 8), // "uiUpdate" QT_MOC_LITERAL(2, 17, 0), // "" QT_MOC_LITERAL(3, 18, 1), // "s" -QT_MOC_LITERAL(4, 20, 16), // "FrogPilotUIState" +QT_MOC_LITERAL(4, 20, 16), // "StarPilotUIState" QT_MOC_LITERAL(5, 37, 2), // "fs" QT_MOC_LITERAL(6, 40, 17), // "offroadTransition" QT_MOC_LITERAL(7, 58, 7), // "offroad" @@ -44,7 +44,7 @@ QT_MOC_LITERAL(9, 81, 7), // "engaged" QT_MOC_LITERAL(10, 89, 6) // "update" }, - "UIState\0uiUpdate\0\0s\0FrogPilotUIState\0" + "UIState\0uiUpdate\0\0s\0StarPilotUIState\0" "fs\0offroadTransition\0offroad\0" "engagedChanged\0engaged\0update" }; @@ -88,7 +88,7 @@ void UIState::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, voi auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { - case 0: _t->uiUpdate((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const FrogPilotUIState(*)>(_a[2]))); break; + case 0: _t->uiUpdate((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const StarPilotUIState(*)>(_a[2]))); break; case 1: _t->offroadTransition((*reinterpret_cast< bool(*)>(_a[1]))); break; case 2: _t->engagedChanged((*reinterpret_cast< bool(*)>(_a[1]))); break; case 3: _t->update(); break; @@ -97,7 +97,7 @@ void UIState::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, voi } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (UIState::*)(const UIState & , const FrogPilotUIState & ); + using _t = void (UIState::*)(const UIState & , const StarPilotUIState & ); if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UIState::uiUpdate)) { *result = 0; return; @@ -161,7 +161,7 @@ int UIState::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void UIState::uiUpdate(const UIState & _t1, const FrogPilotUIState & _t2) +void UIState::uiUpdate(const UIState & _t1, const StarPilotUIState & _t2) { void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)), const_cast(reinterpret_cast(&_t2)) }; QMetaObject::activate(this, &staticMetaObject, 0, _a); @@ -202,14 +202,14 @@ QT_MOC_LITERAL(7, 82, 14), // "timeout_onroad" QT_MOC_LITERAL(8, 97, 6), // "update" QT_MOC_LITERAL(9, 104, 7), // "UIState" QT_MOC_LITERAL(10, 112, 1), // "s" -QT_MOC_LITERAL(11, 114, 16), // "FrogPilotUIState" +QT_MOC_LITERAL(11, 114, 16), // "StarPilotUIState" QT_MOC_LITERAL(12, 131, 2) // "fs" }, "Device\0displayPowerChanged\0\0on\0" "interactiveTimeout\0resetInteractiveTimeout\0" "timeout\0timeout_onroad\0update\0UIState\0" - "s\0FrogPilotUIState\0fs" + "s\0StarPilotUIState\0fs" }; #undef QT_MOC_LITERAL @@ -260,7 +260,7 @@ void Device::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void case 2: _t->resetInteractiveTimeout((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 3: _t->resetInteractiveTimeout((*reinterpret_cast< int(*)>(_a[1]))); break; case 4: _t->resetInteractiveTimeout(); break; - case 5: _t->update((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const FrogPilotUIState(*)>(_a[2]))); break; + case 5: _t->update((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const StarPilotUIState(*)>(_a[2]))); break; default: ; } } else if (_c == QMetaObject::IndexOfMethod) { diff --git a/selfdrive/ui/qt/api.h b/selfdrive/ui/qt/api.h index e4dcc102..2b7d70f1 100644 --- a/selfdrive/ui/qt/api.h +++ b/selfdrive/ui/qt/api.h @@ -7,7 +7,7 @@ #include "common/util.h" -#include "frogpilot/ui/qt/widgets/frogpilot_controls.h" +#include "starpilot/ui/qt/widgets/starpilot_controls.h" namespace CommaApi { diff --git a/selfdrive/ui/qt/home.cc b/selfdrive/ui/qt/home.cc index d7d6722e..3aaea468 100644 --- a/selfdrive/ui/qt/home.cc +++ b/selfdrive/ui/qt/home.cc @@ -9,8 +9,8 @@ #include "selfdrive/ui/qt/util.h" #include "selfdrive/ui/qt/widgets/prime.h" -#include "frogpilot/ui/qt/widgets/drive_stats.h" -#include "frogpilot/ui/qt/widgets/drive_summary.h" +#include "starpilot/ui/qt/widgets/drive_stats.h" +#include "starpilot/ui/qt/widgets/drive_summary.h" // HomeWindow: the container for the offroad and onroad UIs @@ -46,7 +46,7 @@ HomeWindow::HomeWindow(QWidget* parent) : QWidget(parent) { QObject::connect(uiState(), &UIState::offroadTransition, this, &HomeWindow::offroadTransition); QObject::connect(uiState(), &UIState::offroadTransition, sidebar, &Sidebar::offroadTransition); - // FrogPilot variables + // StarPilot variables developer_sidebar = new DeveloperSidebar(this); main_layout->addWidget(developer_sidebar); developer_sidebar->setVisible(false); @@ -56,7 +56,7 @@ void HomeWindow::showSidebar(bool show) { sidebar->setVisible(show); } -void HomeWindow::updateState(const UIState &s, const FrogPilotUIState &fs) { +void HomeWindow::updateState(const UIState &s, const StarPilotUIState &fs) { const SubMaster &sm = *(s.sm); // switch to the generic robot UI @@ -65,38 +65,38 @@ void HomeWindow::updateState(const UIState &s, const FrogPilotUIState &fs) { slayout->setCurrentWidget(body); } - // FrogPilot variables - const FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - const QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + // StarPilot variables + const StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + const QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; if (s.scene.started) { - if (frogpilot_scene.driver_camera_timer >= UI_FREQ / 2) { + if (starpilot_scene.driver_camera_timer >= UI_FREQ / 2) { showDriverView(true, true); } else { if (driver_view->isVisible()) { - sidebar->setVisible(params.getBool("Sidebar") || frogpilot_toggles.value("debug_mode").toBool()); + sidebar->setVisible(params.getBool("Sidebar") || starpilot_toggles.value("debug_mode").toBool()); slayout->setCurrentWidget(onroad); } - developer_sidebar->setVisible(frogpilot_toggles.value("developer_sidebar").toBool()); + developer_sidebar->setVisible(starpilot_toggles.value("developer_sidebar").toBool()); - frogpilotUIState()->frogpilot_scene.sidebars_open = developer_sidebar->isVisible() && sidebar->isVisible(); + starpilotUIState()->starpilot_scene.sidebars_open = developer_sidebar->isVisible() && sidebar->isVisible(); } } } void HomeWindow::offroadTransition(bool offroad) { - // FrogPilot variables - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + // StarPilot variables + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; body->setEnabled(false); - sidebar->setVisible(offroad || params.getBool("SidebarOpen") || frogpilot_toggles.value("debug_mode").toBool()); + sidebar->setVisible(offroad || params.getBool("SidebarOpen") || starpilot_toggles.value("debug_mode").toBool()); if (offroad) { slayout->setCurrentWidget(home); - // FrogPilot variables + // StarPilot variables developer_sidebar->setVisible(false); } else { slayout->setCurrentWidget(onroad); @@ -114,7 +114,7 @@ void HomeWindow::showDriverView(bool show, bool started) { } sidebar->setVisible(show == false); - // FrogPilot variables + // StarPilot variables developer_sidebar->setVisible(false); } @@ -123,7 +123,7 @@ void HomeWindow::mousePressEvent(QMouseEvent* e) { if ((onroad->isVisible() || body->isVisible()) && (!sidebar->isVisible() || e->x() > sidebar->width())) { sidebar->setVisible(!sidebar->isVisible()); - // FrogPilot variables + // StarPilot variables params.putBool("SidebarOpen", sidebar->isVisible()); } } @@ -152,7 +152,7 @@ OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) { header_layout->setContentsMargins(0, 0, 0, 0); header_layout->setSpacing(16); - // FrogPilot variables + // StarPilot variables date = new ElidedLabel(); header_layout->addWidget(date, 0, Qt::AlignHCenter | Qt::AlignLeft); @@ -189,10 +189,10 @@ OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) { left_stack->setContentsMargins(0, 0, 0, 0); left_stack->addWidget(new DriveStats()); - FrogPilotDriveSummary *drive_summary = new FrogPilotDriveSummary(this); + StarPilotDriveSummary *drive_summary = new StarPilotDriveSummary(this); left_stack->addWidget(drive_summary); - QObject::connect(drive_summary, &FrogPilotDriveSummary::panelClosed, [left_stack]() { + QObject::connect(drive_summary, &StarPilotDriveSummary::panelClosed, [left_stack]() { left_stack->setCurrentIndex(0); }); QObject::connect(uiState(), &UIState::offroadTransition, [left_stack](bool offroad) { @@ -224,16 +224,16 @@ OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) { right_widget->addWidget(default_right); - FrogPilotDriveSummary *random_events_summary = new FrogPilotDriveSummary(this, true); + StarPilotDriveSummary *random_events_summary = new StarPilotDriveSummary(this, true); right_widget->addWidget(random_events_summary); right_widget->setCurrentIndex(0); - QObject::connect(random_events_summary, &FrogPilotDriveSummary::panelClosed, [=]() { + QObject::connect(random_events_summary, &StarPilotDriveSummary::panelClosed, [=]() { right_widget->setCurrentIndex(0); }); QObject::connect(uiState(), &UIState::offroadTransition, [right_widget](bool offroad) { static bool previouslyOnroad = false; - if (offroad && previouslyOnroad && frogpilotUIState()->frogpilot_scene.frogpilot_toggles.value("random_events").toBool()) { + if (offroad && previouslyOnroad && starpilotUIState()->starpilot_scene.starpilot_toggles.value("random_events").toBool()) { right_widget->setCurrentIndex(1); } previouslyOnroad = !offroad; @@ -306,10 +306,10 @@ void OffroadHome::refresh() { alert_notif->setText(QString::number(alerts) + (alerts > 1 ? tr(" ALERTS") : tr(" ALERT"))); } - // FrogPilot variables - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + // StarPilot variables + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; date->setText(QLocale(uiState()->language.mid(5)).toString(QDateTime::currentDateTime(), "dddd, MMMM d")); date->setVisible(util::system_time_valid()); @@ -318,5 +318,5 @@ void OffroadHome::refresh() { if (!versionText.startsWith("v", Qt::CaseInsensitive)) { versionText.prepend("v"); } - version->setText(getBrand() + " - " + versionText + " - " + cleanModelName(frogpilot_toggles.value("model_name").toString())); + version->setText(getBrand() + " - " + versionText + " - " + cleanModelName(starpilot_toggles.value("model_name").toString())); } diff --git a/selfdrive/ui/qt/home.h b/selfdrive/ui/qt/home.h index 79549c6d..b88a189d 100644 --- a/selfdrive/ui/qt/home.h +++ b/selfdrive/ui/qt/home.h @@ -16,7 +16,7 @@ #include "selfdrive/ui/qt/widgets/offroad_alerts.h" #include "selfdrive/ui/ui.h" -#include "frogpilot/ui/qt/widgets/developer_sidebar.h" +#include "starpilot/ui/qt/widgets/developer_sidebar.h" class OffroadHome : public QFrame { Q_OBJECT @@ -42,7 +42,7 @@ private: QPushButton* alert_notif; QPushButton* update_notif; - // FrogPilot variables + // StarPilot variables ElidedLabel* date; }; @@ -73,11 +73,11 @@ private: DriverViewWindow *driver_view; QStackedLayout *slayout; - // FrogPilot variables + // StarPilot variables DeveloperSidebar *developer_sidebar; Params params; private slots: - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); }; diff --git a/selfdrive/ui/qt/moc_home.cc b/selfdrive/ui/qt/moc_home.cc index 725f6049..a2580d77 100644 --- a/selfdrive/ui/qt/moc_home.cc +++ b/selfdrive/ui/qt/moc_home.cc @@ -163,14 +163,14 @@ QT_MOC_LITERAL(11, 105, 11), // "showSidebar" QT_MOC_LITERAL(12, 117, 11), // "updateState" QT_MOC_LITERAL(13, 129, 7), // "UIState" QT_MOC_LITERAL(14, 137, 1), // "s" -QT_MOC_LITERAL(15, 139, 16), // "FrogPilotUIState" +QT_MOC_LITERAL(15, 139, 16), // "StarPilotUIState" QT_MOC_LITERAL(16, 156, 2) // "fs" }, "HomeWindow\0openSettings\0\0index\0param\0" "closeSettings\0offroadTransition\0offroad\0" "showDriverView\0show\0started\0showSidebar\0" - "updateState\0UIState\0s\0FrogPilotUIState\0" + "updateState\0UIState\0s\0StarPilotUIState\0" "fs" }; #undef QT_MOC_LITERAL @@ -231,7 +231,7 @@ void HomeWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, case 5: _t->showDriverView((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break; case 6: _t->showDriverView((*reinterpret_cast< bool(*)>(_a[1]))); break; case 7: _t->showSidebar((*reinterpret_cast< bool(*)>(_a[1]))); break; - case 8: _t->updateState((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const FrogPilotUIState(*)>(_a[2]))); break; + case 8: _t->updateState((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const StarPilotUIState(*)>(_a[2]))); break; default: ; } } else if (_c == QMetaObject::IndexOfMethod) { diff --git a/selfdrive/ui/qt/moc_sidebar.cc b/selfdrive/ui/qt/moc_sidebar.cc index 387d6d01..8531d4b5 100644 --- a/selfdrive/ui/qt/moc_sidebar.cc +++ b/selfdrive/ui/qt/moc_sidebar.cc @@ -42,7 +42,7 @@ QT_MOC_LITERAL(7, 65, 7), // "offroad" QT_MOC_LITERAL(8, 73, 11), // "updateState" QT_MOC_LITERAL(9, 85, 7), // "UIState" QT_MOC_LITERAL(10, 93, 1), // "s" -QT_MOC_LITERAL(11, 95, 16), // "FrogPilotUIState" +QT_MOC_LITERAL(11, 95, 16), // "StarPilotUIState" QT_MOC_LITERAL(12, 112, 2), // "fs" QT_MOC_LITERAL(13, 115, 13), // "connectStatus" QT_MOC_LITERAL(14, 129, 10), // "ItemStatus" @@ -58,7 +58,7 @@ QT_MOC_LITERAL(22, 222, 13) // "storageStatus" }, "Sidebar\0openSettings\0\0index\0param\0" "valueChanged\0offroadTransition\0offroad\0" - "updateState\0UIState\0s\0FrogPilotUIState\0" + "updateState\0UIState\0s\0StarPilotUIState\0" "fs\0connectStatus\0ItemStatus\0pandaStatus\0" "tempStatus\0netType\0netStrength\0" "recordingAudio\0chipStatus\0memoryStatus\0" @@ -135,7 +135,7 @@ void Sidebar::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, voi case 2: _t->openSettings(); break; case 3: _t->valueChanged(); break; case 4: _t->offroadTransition((*reinterpret_cast< bool(*)>(_a[1]))); break; - case 5: _t->updateState((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const FrogPilotUIState(*)>(_a[2]))); break; + case 5: _t->updateState((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const StarPilotUIState(*)>(_a[2]))); break; default: ; } } else if (_c == QMetaObject::IndexOfMethod) { diff --git a/selfdrive/ui/qt/network/wifi_manager.h b/selfdrive/ui/qt/network/wifi_manager.h index a0fdfa4e..f0c533d6 100644 --- a/selfdrive/ui/qt/network/wifi_manager.h +++ b/selfdrive/ui/qt/network/wifi_manager.h @@ -69,7 +69,7 @@ public: void changeTetheringPassword(const QString &newPassword); QString getTetheringPassword(); - // FrogPilot variables + // StarPilot variables QString getIp4Address(); private: diff --git a/selfdrive/ui/qt/offroad/developer_panel.cc b/selfdrive/ui/qt/offroad/developer_panel.cc index 1545deec..c81adad5 100644 --- a/selfdrive/ui/qt/offroad/developer_panel.cc +++ b/selfdrive/ui/qt/offroad/developer_panel.cc @@ -11,7 +11,7 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : QFrame(parent) { mainListLayout->setContentsMargins(50, 25, 50, 25); mainListLayout->setSpacing(20); - FrogPilotListWidget *mainList = new FrogPilotListWidget(mainWidget); + StarPilotListWidget *mainList = new StarPilotListWidget(mainWidget); mainListLayout->addWidget(mainList); adbToggle = new ParamControl("AdbEnabled", tr("Enable ADB"), @@ -61,7 +61,7 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : QFrame(parent) { // Toggles should be not available to change in onroad state QObject::connect(uiState(), &UIState::offroadTransition, this, &DeveloperPanel::updateToggles); - // FrogPilot variables + // StarPilot variables QJsonObject shownDescriptions = QJsonDocument::fromJson(QString::fromStdString(params.get("ShownToggleDescriptions")).toUtf8()).object(); QString className = this->metaObject()->className(); @@ -71,11 +71,11 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : QFrame(parent) { std::vector keys = params.allKeys(); for (const std::string &key : keys) { - frogpilotToggleLevels[QString::fromStdString(key)] = params.getTuningLevel(key); + starpilotToggleLevels[QString::fromStdString(key)] = params.getTuningLevel(key); } - developerUIToggle = new FrogPilotManageControl("DeveloperUI", tr("Developer UI"), tr("Detailed information about openpilot's internal operations."), ""); - QObject::connect(developerUIToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + developerUIToggle = new StarPilotManageControl("DeveloperUI", tr("Developer UI"), tr("Detailed information about openpilot's internal operations."), ""); + QObject::connect(developerUIToggle, &StarPilotManageControl::manageButtonClicked, [this]() { mainLayout->setCurrentWidget(developerUIPanel); emit openSubPanel(); }); @@ -83,22 +83,22 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : QFrame(parent) { mainLayout->addWidget(mainWidget); - FrogPilotListWidget *developerUIList = new FrogPilotListWidget(this); + StarPilotListWidget *developerUIList = new StarPilotListWidget(this); developerUIList->setContentsMargins(50, 25, 50, 25); developerUIPanel = new ScrollView(developerUIList, this); mainLayout->addWidget(developerUIPanel); - FrogPilotListWidget *developerMetricList = new FrogPilotListWidget(this); + StarPilotListWidget *developerMetricList = new StarPilotListWidget(this); developerMetricList->setContentsMargins(50, 25, 50, 25); developerMetricPanel = new ScrollView(developerMetricList, this); mainLayout->addWidget(developerMetricPanel); - FrogPilotListWidget *developerSidebarList = new FrogPilotListWidget(this); + StarPilotListWidget *developerSidebarList = new StarPilotListWidget(this); developerSidebarList->setContentsMargins(50, 25, 50, 25); developerSidebarPanel = new ScrollView(developerSidebarList, this); mainLayout->addWidget(developerSidebarPanel); - FrogPilotListWidget *developerWidgetList = new FrogPilotListWidget(this); + StarPilotListWidget *developerWidgetList = new StarPilotListWidget(this); developerWidgetList->setContentsMargins(50, 25, 50, 25); developerWidgetPanel = new ScrollView(developerWidgetList, this); mainLayout->addWidget(developerWidgetPanel); @@ -132,8 +132,8 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : QFrame(parent) { AbstractControl *developerToggle; if (param == "DeveloperMetrics") { - FrogPilotManageControl *developerMetricsToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(developerMetricsToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + StarPilotManageControl *developerMetricsToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(developerMetricsToggle, &StarPilotManageControl::manageButtonClicked, [this]() { mainLayout->setCurrentWidget(developerMetricPanel); emit openSubSubPanel(); }); @@ -141,22 +141,22 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : QFrame(parent) { } else if (param == "BorderMetrics") { std::vector borderToggles{"BlindSpotMetrics", "ShowSteering", "SignalMetrics"}; std::vector borderToggleNames{tr("Blind Spot"), tr("Steering Torque"), tr("Turn Signal")}; - borderMetricsButton = new FrogPilotButtonToggleControl(param, title, desc, icon, borderToggles, borderToggleNames); + borderMetricsButton = new StarPilotButtonToggleControl(param, title, desc, icon, borderToggles, borderToggleNames); developerToggle = borderMetricsButton; } else if (param == "NumericalTemp") { std::vector temperatureToggles{"Fahrenheit"}; std::vector temperatureToggleNames{tr("Fahrenheit")}; - developerToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, temperatureToggles, temperatureToggleNames); + developerToggle = new StarPilotButtonToggleControl(param, title, desc, icon, temperatureToggles, temperatureToggleNames); } else if (param == "SidebarMetrics") { sidebarMetricsToggles = {"ShowCPU", "ShowGPU", "ShowIP", "ShowMemoryUsage", "ShowStorageLeft", "ShowStorageUsed"}; std::vector sidebarMetricsToggleNames{tr("CPU"), tr("GPU"), tr("IP"), tr("RAM"), tr("SSD Left"), tr("SSD Used")}; - sidebarMetricsToggle = new FrogPilotButtonsControl(title, desc, icon, sidebarMetricsToggleNames, true, false, 150); + sidebarMetricsToggle = new StarPilotButtonsControl(title, desc, icon, sidebarMetricsToggleNames, true, false, 150); for (int i = 0; i < sidebarMetricsToggles.size(); ++i) { if (params.getBool(sidebarMetricsToggles[i].toStdString())) { sidebarMetricsToggle->setCheckedButton(i); } } - QObject::connect(sidebarMetricsToggle, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + QObject::connect(sidebarMetricsToggle, &StarPilotButtonsControl::buttonClicked, [this](int id) { params.putBool(sidebarMetricsToggles[id].toStdString(), !params.getBool(sidebarMetricsToggles[id].toStdString())); if (id == 0) { @@ -183,8 +183,8 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : QFrame(parent) { }); developerToggle = sidebarMetricsToggle; } else if (param == "DeveloperSidebar") { - FrogPilotManageControl *developerSidebarToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(developerSidebarToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + StarPilotManageControl *developerSidebarToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(developerSidebarToggle, &StarPilotManageControl::manageButtonClicked, [this]() { mainLayout->setCurrentWidget(developerSidebarPanel); emit openSubSubPanel(); }); @@ -226,8 +226,8 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : QFrame(parent) { metricToggle->setValue(developerSidebarMetricOptions.value(params.getInt(param.toStdString()), tr("None"))); developerToggle = metricToggle; } else if (param == "DeveloperWidgets") { - FrogPilotManageControl *developerWidgetsToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(developerWidgetsToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + StarPilotManageControl *developerWidgetsToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(developerWidgetsToggle, &StarPilotManageControl::manageButtonClicked, [this]() { mainLayout->setCurrentWidget(developerWidgetPanel); emit openSubSubPanel(); }); @@ -235,7 +235,7 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : QFrame(parent) { } else if (param == "ShowStoppingPoint") { std::vector stoppingPointToggles{"ShowStoppingPointMetrics"}; std::vector stoppingPointToggleNames{tr("Show Distance")}; - developerToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, stoppingPointToggles, stoppingPointToggleNames); + developerToggle = new StarPilotButtonToggleControl(param, title, desc, icon, stoppingPointToggles, stoppingPointToggleNames); } else { developerToggle = new ParamControl(param, title, desc, icon); } @@ -272,7 +272,7 @@ void DeveloperPanel::updateToggles(bool _offroad) { btn->setEnabled(_offroad); } - // FrogPilot variables + // StarPilot variables for (auto &[key, toggle] : toggles) { if (toggle == btn) { btn->setEnabled(true); @@ -305,7 +305,7 @@ void DeveloperPanel::updateToggles(bool _offroad) { longManeuverToggle->setEnabled(hasLongitudinalControl(CP) && _offroad); - // FrogPilot variables + // StarPilot variables hasOpenpilotLongitudinal = hasLongitudinalControl(CP); hasRadar = !CP.getRadarUnavailable(); @@ -318,7 +318,7 @@ void DeveloperPanel::updateToggles(bool _offroad) { offroad = _offroad; - // FrogPilot variables + // StarPilot variables tuningLevel = params.getInt("TuningLevel"); for (auto &[key, toggle] : toggles) { @@ -332,7 +332,7 @@ void DeveloperPanel::updateToggles(bool _offroad) { continue; } - bool setVisible = tuningLevel >= frogpilotToggleLevels[key].toDouble(); + bool setVisible = tuningLevel >= starpilotToggleLevels[key].toDouble(); if (key == "AdjacentLeadsUI") { setVisible &= hasRadar && !(params.getBool("AdvancedCustomUI") && params.getBool("HideLeadMarker")); @@ -363,7 +363,7 @@ void DeveloperPanel::updateToggles(bool _offroad) { borderMetricsButton->setVisibleButton(0, hasBSM); - developerUIToggle->setVisible(tuningLevel >= frogpilotToggleLevels["DeveloperUI"].toDouble()); + developerUIToggle->setVisible(tuningLevel >= starpilotToggleLevels["DeveloperUI"].toDouble()); openDescriptions(forceOpenDescriptions, toggles); @@ -373,7 +373,7 @@ void DeveloperPanel::updateToggles(bool _offroad) { void DeveloperPanel::showEvent(QShowEvent *event) { updateToggles(offroad); - // FrogPilot variables + // StarPilot variables for (int i = 0; i < sidebarMetricsToggles.size(); ++i) { if (params.getBool(sidebarMetricsToggles[i].toStdString())) { sidebarMetricsToggle->setCheckedButton(i); diff --git a/selfdrive/ui/qt/offroad/developer_panel.h b/selfdrive/ui/qt/offroad/developer_panel.h index be202203..db903f32 100644 --- a/selfdrive/ui/qt/offroad/developer_panel.h +++ b/selfdrive/ui/qt/offroad/developer_panel.h @@ -2,7 +2,7 @@ #include "selfdrive/ui/qt/offroad/settings.h" -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" class DeveloperPanel : public QFrame { Q_OBJECT @@ -10,7 +10,7 @@ public: explicit DeveloperPanel(SettingsWindow *parent); void showEvent(QShowEvent *event) override; -// FrogPilot variables +// StarPilot variables signals: void openSubPanel(); void openSubSubPanel(); @@ -24,7 +24,7 @@ private: bool is_release; bool offroad = false; - // FrogPilot variables + // StarPilot variables bool forceOpenDescriptions = false; bool hasBSM = true; bool hasOpenpilotLongitudinal = true; @@ -36,13 +36,13 @@ private: std::vector sidebarMetricsToggles; - FrogPilotButtonsControl *sidebarMetricsToggle; + StarPilotButtonsControl *sidebarMetricsToggle; - FrogPilotButtonToggleControl *borderMetricsButton; + StarPilotButtonToggleControl *borderMetricsButton; - FrogPilotManageControl *developerUIToggle; + StarPilotManageControl *developerUIToggle; - QJsonObject frogpilotToggleLevels; + QJsonObject starpilotToggleLevels; QSet developerMetricKeys = {"AdjacentPathMetrics", "BorderMetrics", "FPSCounter", "LeadInfo", "NumericalTemp", "SidebarMetrics", "UseSI"}; QSet developerSidebarKeys = {"DeveloperSidebarMetric1", "DeveloperSidebarMetric2", "DeveloperSidebarMetric3", "DeveloperSidebarMetric4", "DeveloperSidebarMetric5", "DeveloperSidebarMetric6", "DeveloperSidebarMetric7"}; diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index 65568e71..36441d6e 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -22,7 +22,7 @@ #include "selfdrive/ui/qt/offroad/developer_panel.h" #include "selfdrive/ui/qt/offroad/firehose.h" -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" TogglesPanel::TogglesPanel(SettingsWindow *parent) : ListWidget(parent) { // param, title, desc, icon, restart needed @@ -128,7 +128,7 @@ TogglesPanel::TogglesPanel(SettingsWindow *parent) : ListWidget(parent) { toggles["ExperimentalMode"]->setActiveIcon("../assets/icons/experimental.svg"); toggles["ExperimentalMode"]->setConfirmation(true, true); - // FrogPilot variables + // StarPilot variables connect(toggles["IsMetric"], &ToggleControl::toggleFlipped, [=](bool isMetric) { updateMetric(isMetric); }); @@ -215,18 +215,18 @@ void TogglesPanel::updateToggles() { experimental_mode_toggle->setDescription(e2e_description); } - // FrogPilot variables - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + // StarPilot variables + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; auto disengage_on_accelerator_toggle = toggles["DisengageOnAccelerator"]; - disengage_on_accelerator_toggle->setVisible(!frogpilot_toggles.value("always_on_lateral").toBool()); + disengage_on_accelerator_toggle->setVisible(!starpilot_toggles.value("always_on_lateral").toBool()); auto driver_camera_toggle = toggles["RecordFront"]; - driver_camera_toggle->setVisible(!frogpilot_toggles.value("no_logging").toBool()); - experimental_mode_toggle->setVisible(!frogpilot_toggles.value("conditional_experimental_mode").toBool()); + driver_camera_toggle->setVisible(!starpilot_toggles.value("no_logging").toBool()); + experimental_mode_toggle->setVisible(!starpilot_toggles.value("conditional_experimental_mode").toBool()); auto record_audio_toggle = toggles["RecordAudio"]; - record_audio_toggle->setVisible(!frogpilot_toggles.value("no_logging").toBool()); + record_audio_toggle->setVisible(!starpilot_toggles.value("no_logging").toBool()); } GalaxyQRPopup::GalaxyQRPopup(const QString &url, QWidget *parent) : DialogBase(parent) { @@ -279,7 +279,7 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) { }); addItem(pair_device); - const std::string galaxy_dir = Hardware::PC() ? (Path::comma_home() + "/frogpilot/data/galaxy") : "/data/galaxy"; + const std::string galaxy_dir = Hardware::PC() ? (Path::comma_home() + "/starpilot/data/galaxy") : "/data/galaxy"; const std::string galaxy_auth_path = galaxy_dir + "/glxyauth"; const std::string galaxy_session_path = galaxy_dir + "/glxysession"; const std::string galaxy_slug_path = galaxy_dir + "/glxyslug"; @@ -566,7 +566,7 @@ void SettingsWindow::showEvent(QShowEvent *event) { setCurrentPanel(0); } -// FrogPilot variables +// StarPilot variables void SettingsWindow::hideEvent(QHideEvent *event) { closePanel(); closeSubPanel(); @@ -576,7 +576,7 @@ void SettingsWindow::hideEvent(QHideEvent *event) { subSubPanelOpen = false; subSubSubPanelOpen = false; - updateFrogPilotToggles(); + updateStarPilotToggles(); } void SettingsWindow::setCurrentPanel(int index, const QString ¶m) { @@ -627,7 +627,7 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { sidebar_layout->addSpacing(10); sidebar_layout->addWidget(close_btn, 0, Qt::AlignRight); QObject::connect(close_btn, &QPushButton::clicked, [this]() { - // FrogPilot variables + // StarPilot variables if (subSubSubPanelOpen) { closeSubSubSubPanel(); subSubSubPanelOpen = false; @@ -657,15 +657,15 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { auto networking = new Networking(this); QObject::connect(uiState()->prime_state, &PrimeState::changed, networking, &Networking::setPrimeType); - // FrogPilot variables + // StarPilot variables QObject::connect(toggles, &TogglesPanel::updateMetric, this, &SettingsWindow::updateMetric); - FrogPilotSettingsWindow *frogpilotSettingsWindow = new FrogPilotSettingsWindow(this); - QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openPanel, [this]() {panelOpen=true;}); - QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openSubPanel, [this]() {subPanelOpen=true;}); - QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openSubSubPanel, [this]() {subSubPanelOpen=true;}); - QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::openSubSubSubPanel, [this]() {subSubSubPanelOpen=true;}); - QObject::connect(frogpilotSettingsWindow, &FrogPilotSettingsWindow::tuningLevelChanged, this, &SettingsWindow::updateDeveloperToggle); + StarPilotSettingsWindow *starpilotSettingsWindow = new StarPilotSettingsWindow(this); + QObject::connect(starpilotSettingsWindow, &StarPilotSettingsWindow::openPanel, [this]() {panelOpen=true;}); + QObject::connect(starpilotSettingsWindow, &StarPilotSettingsWindow::openSubPanel, [this]() {subPanelOpen=true;}); + QObject::connect(starpilotSettingsWindow, &StarPilotSettingsWindow::openSubSubPanel, [this]() {subSubPanelOpen=true;}); + QObject::connect(starpilotSettingsWindow, &StarPilotSettingsWindow::openSubSubSubPanel, [this]() {subSubSubPanelOpen=true;}); + QObject::connect(starpilotSettingsWindow, &StarPilotSettingsWindow::tuningLevelChanged, this, &SettingsWindow::updateDeveloperToggle); DeveloperPanel *developerPanel = new DeveloperPanel(this); QObject::connect(developerPanel, &DeveloperPanel::openSubPanel, [this]() {subPanelOpen=true;}); @@ -677,7 +677,7 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { {tr("Toggles"), toggles}, {tr("Software"), new SoftwarePanel(this)}, {tr("Developer"), developerPanel}, - {tr("StarPilot"), frogpilotSettingsWindow}, + {tr("StarPilot"), starpilotSettingsWindow}, }; nav_btns = new QButtonGroup(this); @@ -711,45 +711,45 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { panel_widget->addWidget(panel_frame); QObject::connect(btn, &QPushButton::clicked, [=, w = panel_frame]() { - // FrogPilot variables - if (w->widget() == frogpilotSettingsWindow) { + // StarPilot variables + if (w->widget() == starpilotSettingsWindow) { bool tuningLevelConfirmed = params.getBool("TuningLevelConfirmed"); if (!tuningLevelConfirmed) { - int frogpilotHours = QJsonDocument::fromJson(QString::fromStdString(params.get("FrogPilotStats")).toUtf8()).object().value("FrogPilotSeconds").toInt() / (60 * 60); + int starpilotHours = QJsonDocument::fromJson(QString::fromStdString(params.get("StarPilotStats")).toUtf8()).object().value("StarPilotSeconds").toInt() / (60 * 60); int openpilotHours = params.getInt("KonikMinutes") / 60 + params.getInt("openpilotMinutes") / 60; - if (frogpilotHours < 1 && openpilotHours < 100) { + if (starpilotHours < 1 && openpilotHours < 100) { if (openpilotHours < 10) { - if (ConfirmationDialog::alert(tr("Welcome to FrogPilot! Since you're new to openpilot, the \"Minimal\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { + if (ConfirmationDialog::alert(tr("Welcome to StarPilot! Since you're new to openpilot, the \"Minimal\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { params.putBool("TuningLevelConfirmed", true); params.putInt("TuningLevel", 0); } } else { - if (ConfirmationDialog::alert(tr("Welcome to FrogPilot! Since you're new to FrogPilot, the \"Minimal\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { + if (ConfirmationDialog::alert(tr("Welcome to StarPilot! Since you're new to StarPilot, the \"Minimal\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { params.putBool("TuningLevelConfirmed", true); params.putInt("TuningLevel", 0); } } - } else if (frogpilotHours < 50 && openpilotHours < 100) { - if (ConfirmationDialog::alert(tr("Since you're fairly new to FrogPilot, the \"Minimal\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { + } else if (starpilotHours < 50 && openpilotHours < 100) { + if (ConfirmationDialog::alert(tr("Since you're fairly new to StarPilot, the \"Minimal\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { params.putBool("TuningLevelConfirmed", true); params.putInt("TuningLevel", 0); } - } else if (frogpilotHours < 100) { + } else if (starpilotHours < 100) { if (openpilotHours >= 100) { if (ConfirmationDialog::alert(tr("Since you're experienced with openpilot, the \"Standard\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { params.putBool("TuningLevelConfirmed", true); params.putInt("TuningLevel", 1); } } else { - if (ConfirmationDialog::alert(tr("Since you're experienced with FrogPilot, the \"Standard\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { + if (ConfirmationDialog::alert(tr("Since you're experienced with StarPilot, the \"Standard\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { params.putBool("TuningLevelConfirmed", true); params.putInt("TuningLevel", 1); } } - } else if (frogpilotHours >= 100) { - if (ConfirmationDialog::alert(tr("Since you're very experienced with FrogPilot, the \"Advanced\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { + } else if (starpilotHours >= 100) { + if (ConfirmationDialog::alert(tr("Since you're very experienced with StarPilot, the \"Advanced\" toggle preset has been applied, but you can change this at any time via the \"Tuning Level\" button!"), this, true)) { params.putBool("TuningLevelConfirmed", true); params.putInt("TuningLevel", 2); } @@ -801,11 +801,11 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { } )"); - // FrogPilot variables + // StarPilot variables updateDeveloperToggle(params.getInt("TuningLevel")); } -// FrogPilot variables +// StarPilot variables void SettingsWindow::updateDeveloperToggle(int tuningLevel) { for (QAbstractButton *btn : nav_btns->buttons()) { if (btn->text() == tr("Developer")) { diff --git a/selfdrive/ui/qt/offroad/settings.h b/selfdrive/ui/qt/offroad/settings.h index 252b5062..247f247d 100644 --- a/selfdrive/ui/qt/offroad/settings.h +++ b/selfdrive/ui/qt/offroad/settings.h @@ -26,7 +26,7 @@ public: protected: void showEvent(QShowEvent *event) override; - // FrogPilot variables + // StarPilot variables void hideEvent(QHideEvent *event) override; signals: @@ -36,7 +36,7 @@ signals: void expandToggleDescription(const QString ¶m); void scrollToToggle(const QString ¶m); - // FrogPilot variables + // StarPilot variables void closePanel(); void closeSubPanel(); void closeSubSubPanel(); @@ -50,7 +50,7 @@ private: QButtonGroup *nav_btns; QStackedWidget *panel_widget; - // FrogPilot variables + // StarPilot variables void updateDeveloperToggle(int tuningLevel); bool panelOpen; @@ -104,7 +104,7 @@ public: void showEvent(QShowEvent *event) override; signals: - // FrogPilot variables + // StarPilot variables void updateMetric(bool metric, bool bootRun=false); public slots: diff --git a/selfdrive/ui/qt/offroad/software_settings.cc b/selfdrive/ui/qt/offroad/software_settings.cc index 221726f8..d3188c17 100644 --- a/selfdrive/ui/qt/offroad/software_settings.cc +++ b/selfdrive/ui/qt/offroad/software_settings.cc @@ -30,8 +30,8 @@ SoftwarePanel::SoftwarePanel(QWidget* parent) : ListWidget(parent) { addItem(versionLbl); // automatic updates toggle - ParamControl *automaticUpdatesToggle = new ParamControl("AutomaticUpdates", tr("Automatically Update FrogPilot"), - tr("Automatically update FrogPilot when the vehicle is parked with an active internet connection."), ""); + ParamControl *automaticUpdatesToggle = new ParamControl("AutomaticUpdates", tr("Automatically Update StarPilot"), + tr("Automatically update StarPilot when the vehicle is parked with an active internet connection."), ""); automaticUpdatesToggle->setVisible(true); addItem(automaticUpdatesToggle); @@ -44,7 +44,7 @@ SoftwarePanel::SoftwarePanel(QWidget* parent) : ListWidget(parent) { } else { std::system("pkill -SIGHUP -f system.updated.updated"); } - frogpilotUIState()->params_memory.putBool("ManualUpdateInitiated", true); + starpilotUIState()->params_memory.putBool("ManualUpdateInitiated", true); }); addItem(downloadBtn); @@ -63,11 +63,11 @@ SoftwarePanel::SoftwarePanel(QWidget* parent) : ListWidget(parent) { QStringList branches = QString::fromStdString(params.get("UpdaterAvailableBranches")).split(","); if (!isFrogsGoMoo()) { for (int i = branches.size() - 1; i >= 0; --i) { - if (branches[i].startsWith("FrogPilot-Development", Qt::CaseInsensitive)) { + if (branches[i].startsWith("StarPilot-Development", Qt::CaseInsensitive)) { branches.removeAt(i); } } - branches.removeAll("FrogPilot-Vetting"); + branches.removeAll("StarPilot-Vetting"); branches.removeAll("MAKE-PRS-HERE"); } for (QString b : {current.c_str(), "devel-staging", "devel", "nightly", "nightly-dev", "master"}) { @@ -85,11 +85,11 @@ SoftwarePanel::SoftwarePanel(QWidget* parent) : ListWidget(parent) { targetBranchBtn->setValue(QString::fromStdString(params.get("UpdaterTargetBranch"))); checkForUpdates(); - // FrogPilot variables + // StarPilot variables if (selection != cur) { - if (FrogPilotConfirmationDialog::yesorno(tr("This branch must be downloaded before switching. Would you like to download it now?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("This branch must be downloaded before switching. Would you like to download it now?"), this)) { std::system("pkill -SIGHUP -f system.updated.updated"); - frogpilotUIState()->params_memory.putBool("ManualUpdateInitiated", true); + starpilotUIState()->params_memory.putBool("ManualUpdateInitiated", true); } } } @@ -100,8 +100,8 @@ SoftwarePanel::SoftwarePanel(QWidget* parent) : ListWidget(parent) { auto uninstallBtn = new ButtonControl(tr("Uninstall %1").arg(getBrand()), tr("UNINSTALL")); connect(uninstallBtn, &ButtonControl::clicked, [&]() { if (ConfirmationDialog::confirm(tr("Are you sure you want to uninstall?"), tr("Uninstall"), this)) { - if (FrogPilotConfirmationDialog::yesorno(tr("Do you want to perform a full factory reset? All saved assets and settings will be permanently deleted!"), this)) { - if (FrogPilotConfirmationDialog::yesorno(tr("This is a complete factory reset and cannot be undone. Are you absolutely sure you want to continue?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Do you want to perform a full factory reset? All saved assets and settings will be permanently deleted!"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("This is a complete factory reset and cannot be undone. Are you absolutely sure you want to continue?"), this)) { Params().clearAll(ParamKeyFlag::ALL); } } @@ -137,21 +137,21 @@ void SoftwarePanel::showEvent(QShowEvent *event) { updateLabels(); - // FrogPilot variables - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; + // StarPilot variables + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; - if (frogpilot_scene.online && params.get("UpdaterState") == "idle") { + if (starpilot_scene.online && params.get("UpdaterState") == "idle") { checkForUpdates(); } } void SoftwarePanel::updateLabels() { - // FrogPilot variables - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; + // StarPilot variables + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; - bool parked = frogpilot_scene.parked || isFrogsGoMoo(); + bool parked = starpilot_scene.parked || isFrogsGoMoo(); // add these back in case the files got removed fs_watch->addParam("LastUpdateTime"); @@ -160,8 +160,8 @@ void SoftwarePanel::updateLabels() { fs_watch->addParam("UpdateAvailable"); if (!isVisible()) { - // FrogPilot variables - frogpilot_scene.downloading_update = false; + // StarPilot variables + starpilot_scene.downloading_update = false; return; } @@ -176,8 +176,8 @@ void SoftwarePanel::updateLabels() { downloadBtn->setEnabled(false); downloadBtn->setValue(updater_state); - // FrogPilot variables - frogpilot_scene.downloading_update = true; + // StarPilot variables + starpilot_scene.downloading_update = true; } else { if (failed) { downloadBtn->setText(tr("CHECK")); @@ -196,8 +196,8 @@ void SoftwarePanel::updateLabels() { } downloadBtn->setEnabled(true); - // FrogPilot variables - frogpilot_scene.downloading_update = false; + // StarPilot variables + starpilot_scene.downloading_update = false; } targetBranchBtn->setValue(QString::fromStdString(params.get("UpdaterTargetBranch"))); diff --git a/selfdrive/ui/qt/onroad/alerts.cc b/selfdrive/ui/qt/onroad/alerts.cc index 4886ee80..2db57494 100644 --- a/selfdrive/ui/qt/onroad/alerts.cc +++ b/selfdrive/ui/qt/onroad/alerts.cc @@ -5,10 +5,10 @@ #include "selfdrive/ui/qt/util.h" -void OnroadAlerts::updateState(const UIState &s, const FrogPilotUIState &fs) { +void OnroadAlerts::updateState(const UIState &s, const StarPilotUIState &fs) { Alert a = getAlert(*(s.sm), *(fs.sm), s.scene.started_frame); if (!alert.equal(a)) { - if (alert.status == cereal::SelfdriveState::AlertStatus::NORMAL && frogpilot_toggles.value("hide_alerts").toBool()) { + if (alert.status == cereal::SelfdriveState::AlertStatus::NORMAL && starpilot_toggles.value("hide_alerts").toBool()) { clear(); } else { alert = a; @@ -16,15 +16,15 @@ void OnroadAlerts::updateState(const UIState &s, const FrogPilotUIState &fs) { } } - // FrogPilot variables - sidebarsOpen = fs.frogpilot_scene.sidebars_open; + // StarPilot variables + sidebarsOpen = fs.starpilot_scene.sidebars_open; } void OnroadAlerts::clear() { alert = {}; update(); - // FrogPilot variables + // StarPilot variables alertHeight = 0; } @@ -32,21 +32,21 @@ OnroadAlerts::Alert OnroadAlerts::getAlert(const SubMaster &sm, const SubMaster const cereal::SelfdriveState::Reader &ss = sm["selfdriveState"].getSelfdriveState(); const uint64_t selfdrive_frame = sm.rcv_frame("selfdriveState"); - // FrogPilot variables - const cereal::FrogPilotSelfdriveState::Reader &fpss = fpsm["frogpilotSelfdriveState"].getFrogpilotSelfdriveState(); + // StarPilot variables + const cereal::StarPilotSelfdriveState::Reader &fpss = fpsm["starpilotSelfdriveState"].getStarpilotSelfdriveState(); Alert a = {}; static QString crash_log_path = "/data/error_logs/error.txt"; if (QFile::exists(crash_log_path)) { - if (frogpilot_toggles.value("random_events").toBool()) { + if (starpilot_toggles.value("random_events").toBool()) { a = {tr("openpilot crashed 💩"), - tr("Please post the \"Error Log\" in the FrogPilot Discord!"), + tr("Please post the \"Error Log\" in the StarPilot Discord!"), "openpilotCrashedRandomEvent", cereal::SelfdriveState::AlertSize::MID, cereal::SelfdriveState::AlertStatus::CRITICAL}; } else { a = {tr("openpilot crashed"), - tr("Please post the \"Error Log\" in the FrogPilot Discord!"), + tr("Please post the \"Error Log\" in the StarPilot Discord!"), "openpilotCrashed", cereal::SelfdriveState::AlertSize::MID, cereal::SelfdriveState::AlertStatus::CRITICAL}; @@ -56,14 +56,14 @@ OnroadAlerts::Alert OnroadAlerts::getAlert(const SubMaster &sm, const SubMaster a = {ss.getAlertText1().cStr(), ss.getAlertText2().cStr(), ss.getAlertType().cStr(), ss.getAlertSize(), ss.getAlertStatus()}; - // FrogPilot variables + // StarPilot variables if (a.size == cereal::SelfdriveState::AlertSize::NONE) { a = {fpss.getAlertText1().cStr(), fpss.getAlertText2().cStr(), fpss.getAlertType().cStr(), static_cast(fpss.getAlertSize()), static_cast(fpss.getAlertStatus())}; } } - if (!sm.updated("selfdriveState") && (sm.frame - started_frame) > 5 * UI_FREQ && !frogpilot_toggles.value("force_onroad").toBool()) { + if (!sm.updated("selfdriveState") && (sm.frame - started_frame) > 5 * UI_FREQ && !starpilot_toggles.value("force_onroad").toBool()) { const int SELFDRIVE_STATE_TIMEOUT = 5; const int ss_missing = (nanos_since_boot() - sm.rcv_time("selfdriveState")) / 1e9; @@ -91,7 +91,7 @@ OnroadAlerts::Alert OnroadAlerts::getAlert(const SubMaster &sm, const SubMaster void OnroadAlerts::paintEvent(QPaintEvent *event) { if (alert.size == cereal::SelfdriveState::AlertSize::NONE) { - // FrogPilot variables + // StarPilot variables alertHeight = 0; return; } @@ -100,7 +100,7 @@ void OnroadAlerts::paintEvent(QPaintEvent *event) { {cereal::SelfdriveState::AlertSize::MID, 420}, {cereal::SelfdriveState::AlertSize::FULL, height()}, }; - // FrogPilot variables + // StarPilot variables alertHeight = alert_heights[alert.size]; int h = alertHeight; @@ -110,7 +110,7 @@ void OnroadAlerts::paintEvent(QPaintEvent *event) { margin = 0; radius = 0; } - // FrogPilot variables + // StarPilot variables alertHeight -= margin; QRect r = QRect(0 + margin, height() - h + margin, width() - margin*2, h - margin*2); @@ -119,7 +119,7 @@ void OnroadAlerts::paintEvent(QPaintEvent *event) { // draw background + gradient p.setPen(Qt::NoPen); p.setCompositionMode(QPainter::CompositionMode_SourceOver); - p.setBrush(QBrush(frogpilot_alert_colors[static_cast(alert.status)])); + p.setBrush(QBrush(starpilot_alert_colors[static_cast(alert.status)])); p.drawRoundedRect(r, radius, radius); QLinearGradient g(0, r.y(), 0, r.bottom()); diff --git a/selfdrive/ui/qt/onroad/alerts.h b/selfdrive/ui/qt/onroad/alerts.h index d65aaf80..a83e1503 100644 --- a/selfdrive/ui/qt/onroad/alerts.h +++ b/selfdrive/ui/qt/onroad/alerts.h @@ -9,13 +9,13 @@ class OnroadAlerts : public QWidget { public: OnroadAlerts(QWidget *parent = 0) : QWidget(parent) {} - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); void clear(); - // FrogPilot variables + // StarPilot variables int alertHeight; - QJsonObject frogpilot_toggles; + QJsonObject starpilot_toggles; protected: struct Alert { @@ -42,13 +42,13 @@ protected: QColor bg; Alert alert = {}; - // FrogPilot variables + // StarPilot variables bool sidebarsOpen; - const QMap frogpilot_alert_colors = { - {cereal::FrogPilotSelfdriveState::AlertStatus::NORMAL, QColor(0x15, 0x15, 0x15, 0xf1)}, - {cereal::FrogPilotSelfdriveState::AlertStatus::USER_PROMPT, QColor(0xDA, 0x6F, 0x25, 0xf1)}, - {cereal::FrogPilotSelfdriveState::AlertStatus::CRITICAL, QColor(0xC9, 0x22, 0x31, 0xf1)}, - {cereal::FrogPilotSelfdriveState::AlertStatus::FROGPILOT, QColor(0x17, 0x86, 0x44, 0xf1)}, + const QMap starpilot_alert_colors = { + {cereal::StarPilotSelfdriveState::AlertStatus::NORMAL, QColor(0x15, 0x15, 0x15, 0xf1)}, + {cereal::StarPilotSelfdriveState::AlertStatus::USER_PROMPT, QColor(0xDA, 0x6F, 0x25, 0xf1)}, + {cereal::StarPilotSelfdriveState::AlertStatus::CRITICAL, QColor(0xC9, 0x22, 0x31, 0xf1)}, + {cereal::StarPilotSelfdriveState::AlertStatus::STARPILOT, QColor(0x17, 0x86, 0x44, 0xf1)}, }; }; diff --git a/selfdrive/ui/qt/onroad/annotated_camera.cc b/selfdrive/ui/qt/onroad/annotated_camera.cc index ab5a1fc8..1ff00fdc 100644 --- a/selfdrive/ui/qt/onroad/annotated_camera.cc +++ b/selfdrive/ui/qt/onroad/annotated_camera.cc @@ -20,7 +20,7 @@ AnnotatedCameraWidget::AnnotatedCameraWidget(VisionStreamType type, QWidget *par experimental_btn = new ExperimentalButton(this); main_layout->addWidget(experimental_btn, 0, Qt::AlignTop | Qt::AlignRight); - // FrogPilot variables + // StarPilot variables personality_btn = new DrivingPersonalityButton(this); personality_btn->setVisible(false); @@ -28,29 +28,29 @@ AnnotatedCameraWidget::AnnotatedCameraWidget(VisionStreamType type, QWidget *par screen_recorder->setVisible(false); } -void AnnotatedCameraWidget::updateState(const UIState &s, const FrogPilotUIState &fs) { +void AnnotatedCameraWidget::updateState(const UIState &s, const StarPilotUIState &fs) { // update engageability/experimental mode button experimental_btn->updateState(s, fs); dmon.updateState(s); - // FrogPilot variables + // StarPilot variables const SubMaster &sm = *(s.sm); const cereal::CarState::Reader &carState = sm["carState"].getCarState(); - frogpilot_nvg->experimentalButtonPosition = QPoint(experimental_btn->x(), experimental_btn->y()); + starpilot_nvg->experimentalButtonPosition = QPoint(experimental_btn->x(), experimental_btn->y()); - bool onroad_distance_btn_enabled = frogpilot_nvg->dmIconPosition != QPoint(0, 0) && !frogpilot_nvg->hideBottomIcons && frogpilot_toggles.value("onroad_distance_button").toBool(); + bool onroad_distance_btn_enabled = starpilot_nvg->dmIconPosition != QPoint(0, 0) && !starpilot_nvg->hideBottomIcons && starpilot_toggles.value("onroad_distance_button").toBool(); personality_btn->setVisible(onroad_distance_btn_enabled); if (onroad_distance_btn_enabled) { - personality_btn->move(frogpilot_nvg->rightHandDM ? width() - UI_BORDER_SIZE - personality_btn->width() - (UI_BORDER_SIZE / 2) : UI_BORDER_SIZE, frogpilot_nvg->dmIconPosition.y() - personality_btn->height() / 2); + personality_btn->move(starpilot_nvg->rightHandDM ? width() - UI_BORDER_SIZE - personality_btn->width() - (UI_BORDER_SIZE / 2) : UI_BORDER_SIZE, starpilot_nvg->dmIconPosition.y() - personality_btn->height() / 2); personality_btn->updateState(s, fs); } dmon.onroad_distance_btn_enabled = onroad_distance_btn_enabled; screen_recorder->move(experimental_btn->x() - UI_BORDER_SIZE - btn_size, experimental_btn->y()); - screen_recorder->setVisible(frogpilot_nvg->standstillDuration == 0 && !(frogpilot_nvg->signalStyle == "static" && carState.getRightBlinker()) && frogpilot_toggles.value("screen_recorder").toBool()); + screen_recorder->setVisible(starpilot_nvg->standstillDuration == 0 && !(starpilot_nvg->signalStyle == "static" && carState.getRightBlinker()) && starpilot_toggles.value("screen_recorder").toBool()); } void AnnotatedCameraWidget::initializeGL() { @@ -149,10 +149,10 @@ void AnnotatedCameraWidget::paintEvent(QPaintEvent *event) { } else if (v_ego > 15) { wide_cam_requested = false; } - wide_cam_requested = wide_cam_requested && sm["selfdriveState"].getSelfdriveState().getExperimentalMode() && frogpilot_toggles.value("camera_view").toInt() == 0; + wide_cam_requested = wide_cam_requested && sm["selfdriveState"].getSelfdriveState().getExperimentalMode() && starpilot_toggles.value("camera_view").toInt() == 0; } - CameraWidget::setStreamType(frogpilot_toggles.value("camera_view").toInt() == 1 ? VISION_STREAM_DRIVER : - frogpilot_toggles.value("camera_view").toInt() == 3 || wide_cam_requested ? VISION_STREAM_WIDE_ROAD : + CameraWidget::setStreamType(starpilot_toggles.value("camera_view").toInt() == 1 ? VISION_STREAM_DRIVER : + starpilot_toggles.value("camera_view").toInt() == 3 || wide_cam_requested ? VISION_STREAM_WIDE_ROAD : VISION_STREAM_ROAD); CameraWidget::setFrameId(sm["modelV2"].getModelV2().getFrameId()); @@ -164,26 +164,26 @@ void AnnotatedCameraWidget::paintEvent(QPaintEvent *event) { painter.setRenderHint(QPainter::Antialiasing); painter.setPen(Qt::NoPen); - // FrogPilot variables - dmon.frogpilot_nvg = frogpilot_nvg; - hud.frogpilot_nvg = frogpilot_nvg; - model.frogpilot_nvg = frogpilot_nvg; + // StarPilot variables + dmon.starpilot_nvg = starpilot_nvg; + hud.starpilot_nvg = starpilot_nvg; + model.starpilot_nvg = starpilot_nvg; - experimental_btn->frogpilot_scene = frogpilot_scene; - model.frogpilot_scene = frogpilot_scene; + experimental_btn->starpilot_scene = starpilot_scene; + model.starpilot_scene = starpilot_scene; - dmon.frogpilot_toggles = frogpilot_toggles; - experimental_btn->frogpilot_toggles = frogpilot_toggles; - hud.frogpilot_toggles = frogpilot_toggles; - model.frogpilot_toggles = frogpilot_toggles; + dmon.starpilot_toggles = starpilot_toggles; + experimental_btn->starpilot_toggles = starpilot_toggles; + hud.starpilot_toggles = starpilot_toggles; + model.starpilot_toggles = starpilot_toggles; model.draw(painter, rect()); dmon.draw(painter, rect()); hud.updateState(*s); hud.draw(painter, rect()); - // FrogPilot variables - frogpilot_nvg->paintFrogPilotWidgets(painter, *s); + // StarPilot variables + starpilot_nvg->paintStarPilotWidgets(painter, *s); double cur_draw_t = millis_since_boot(); double dt = cur_draw_t - prev_draw_t; diff --git a/selfdrive/ui/qt/onroad/annotated_camera.h b/selfdrive/ui/qt/onroad/annotated_camera.h index 03e38c78..9dc49e65 100644 --- a/selfdrive/ui/qt/onroad/annotated_camera.h +++ b/selfdrive/ui/qt/onroad/annotated_camera.h @@ -8,24 +8,24 @@ #include "selfdrive/ui/qt/onroad/model.h" #include "selfdrive/ui/qt/widgets/cameraview.h" -#include "frogpilot/ui/qt/onroad/frogpilot_buttons.h" -#include "frogpilot/ui/screenrecorder/screenrecorder.h" +#include "starpilot/ui/qt/onroad/starpilot_buttons.h" +#include "starpilot/ui/screenrecorder/screenrecorder.h" class AnnotatedCameraWidget : public CameraWidget { Q_OBJECT public: explicit AnnotatedCameraWidget(VisionStreamType type, QWidget* parent = 0); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); - // FrogPilot variables + // StarPilot variables double fps; - FrogPilotAnnotatedCameraWidget *frogpilot_nvg; + StarPilotAnnotatedCameraWidget *starpilot_nvg; - FrogPilotUIScene frogpilot_scene; + StarPilotUIScene starpilot_scene; - QJsonObject frogpilot_toggles; + QJsonObject starpilot_toggles; private: QVBoxLayout *main_layout; @@ -38,7 +38,7 @@ private: int skip_frame_count = 0; bool wide_cam_requested = false; - // FrogPilot variables + // StarPilot variables void paintEvent(QPaintEvent *event) override; DrivingPersonalityButton *personality_btn; diff --git a/selfdrive/ui/qt/onroad/buttons.cc b/selfdrive/ui/qt/onroad/buttons.cc index 5bcf52f0..2e0cf248 100644 --- a/selfdrive/ui/qt/onroad/buttons.cc +++ b/selfdrive/ui/qt/onroad/buttons.cc @@ -27,17 +27,17 @@ ExperimentalButton::ExperimentalButton(QWidget *parent) : experimental_mode(fals experimental_img = loadPixmap("../assets/icons/experimental.svg", {img_size, img_size}); QObject::connect(this, &QPushButton::clicked, this, &ExperimentalButton::changeMode); - // FrogPilot variables - QObject::connect(frogpilotUIState(), &FrogPilotUIState::themeUpdated, this, &ExperimentalButton::updateTheme); + // StarPilot variables + QObject::connect(starpilotUIState(), &StarPilotUIState::themeUpdated, this, &ExperimentalButton::updateTheme); } void ExperimentalButton::changeMode() { const auto cp = (*uiState()->sm)["carParams"].getCarParams(); bool can_change = hasLongitudinalControl(cp) && params.getBool("ExperimentalModeConfirmed"); if (can_change) { - // FrogPilot variables - if (frogpilot_toggles.value("conditional_experimental_mode").toBool()) { - int override_value = (frogpilot_scene.conditional_status == 1 || frogpilot_scene.conditional_status == 2) ? 0 : experimental_mode ? 1 : 2; + // StarPilot variables + if (starpilot_toggles.value("conditional_experimental_mode").toBool()) { + int override_value = (starpilot_scene.conditional_status == 1 || starpilot_scene.conditional_status == 2) ? 0 : experimental_mode ? 1 : 2; params_memory.putInt("CEStatus", override_value); } else { params.putBool("ExperimentalMode", !experimental_mode); @@ -45,25 +45,25 @@ void ExperimentalButton::changeMode() { } } -void ExperimentalButton::updateState(const UIState &s, const FrogPilotUIState &fs) { +void ExperimentalButton::updateState(const UIState &s, const StarPilotUIState &fs) { const auto cs = (*s.sm)["selfdriveState"].getSelfdriveState(); - bool eng = cs.getEngageable() || cs.getEnabled() || fs.frogpilot_scene.always_on_lateral_active; + bool eng = cs.getEngageable() || cs.getEnabled() || fs.starpilot_scene.always_on_lateral_active; if ((cs.getExperimentalMode() != experimental_mode) || (eng != engageable)) { engageable = eng; experimental_mode = cs.getExperimentalMode(); update(); } - // FrogPilot variables + // StarPilot variables const cereal::CarState::Reader &carState = (*s.sm)["carState"].getCarState(); updateBackgroundColor(); int current_steering_angle_deg = -carState.getSteeringAngleDeg(); - if (current_steering_angle_deg != steering_angle_deg && frogpilot_toggles.value("rotating_wheel").toBool()) { + if (current_steering_angle_deg != steering_angle_deg && starpilot_toggles.value("rotating_wheel").toBool()) { steering_angle_deg = current_steering_angle_deg; update(); - } else if (!frogpilot_toggles.value("rotating_wheel").toBool()) { + } else if (!starpilot_toggles.value("rotating_wheel").toBool()) { steering_angle_deg = 0; } @@ -78,7 +78,7 @@ void ExperimentalButton::paintEvent(QPaintEvent *event) { p.setClipRegion(QRegion(QRect(0, 0, btn_size, btn_size), QRegion::Ellipse)); p.setRenderHint(QPainter::Antialiasing); - if (frogpilot_toggles.value("wheel_image").toString() == "stock") { + if (starpilot_toggles.value("wheel_image").toString() == "stock") { QPixmap img = experimental_mode ? experimental_img : engage_img; drawIcon(p, QPoint(btn_size / 2, btn_size / 2), img, background_color, (isDown() || !engageable) ? 0.6 : 1.0, steering_angle_deg); } else if (wheel_gif) { @@ -88,7 +88,7 @@ void ExperimentalButton::paintEvent(QPaintEvent *event) { } } -// FrogPilot variables +// StarPilot variables void ExperimentalButton::showEvent(QShowEvent *event) { updateTheme(); } @@ -96,13 +96,13 @@ void ExperimentalButton::showEvent(QShowEvent *event) { void ExperimentalButton::updateBackgroundColor() { if (isDown() || !engageable) { background_color = QColor(0, 0, 0, 166); - } else if (frogpilot_scene.always_on_lateral_active) { + } else if (starpilot_scene.always_on_lateral_active) { background_color = bg_colors[STATUS_ALWAYS_ON_LATERAL_ACTIVE]; - } else if (frogpilot_scene.conditional_status == 1) { + } else if (starpilot_scene.conditional_status == 1) { background_color = bg_colors[STATUS_CEM_DISABLED]; } else if (experimental_mode) { background_color = bg_colors[STATUS_EXPERIMENTAL_MODE_ENABLED]; - } else if (frogpilot_scene.traffic_mode_enabled) { + } else if (starpilot_scene.traffic_mode_enabled) { background_color = bg_colors[STATUS_TRAFFIC_MODE_ENABLED]; } else { background_color = QColor(0, 0, 0, 166); @@ -110,5 +110,5 @@ void ExperimentalButton::updateBackgroundColor() { } void ExperimentalButton::updateTheme() { - loadImage("../../frogpilot/assets/active_theme/steering_wheel/wheel", wheel_img, wheel_gif, QSize(img_size, img_size), this); + loadImage("../../starpilot/assets/active_theme/steering_wheel/wheel", wheel_img, wheel_gif, QSize(img_size, img_size), this); } diff --git a/selfdrive/ui/qt/onroad/buttons.h b/selfdrive/ui/qt/onroad/buttons.h index abb4de1a..53d52fe8 100644 --- a/selfdrive/ui/qt/onroad/buttons.h +++ b/selfdrive/ui/qt/onroad/buttons.h @@ -12,12 +12,12 @@ class ExperimentalButton : public QPushButton { public: explicit ExperimentalButton(QWidget *parent = 0); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); - // FrogPilot variables - FrogPilotUIScene frogpilot_scene; + // StarPilot variables + StarPilotUIScene starpilot_scene; - QJsonObject frogpilot_toggles; + QJsonObject starpilot_toggles; private: void paintEvent(QPaintEvent *event) override; @@ -29,7 +29,7 @@ private: bool experimental_mode; bool engageable; - // FrogPilot variables + // StarPilot variables void showEvent(QShowEvent *event) override; void updateBackgroundColor(); void updateTheme(); diff --git a/selfdrive/ui/qt/onroad/driver_monitoring.cc b/selfdrive/ui/qt/onroad/driver_monitoring.cc index 1f36c100..2110aae9 100644 --- a/selfdrive/ui/qt/onroad/driver_monitoring.cc +++ b/selfdrive/ui/qt/onroad/driver_monitoring.cc @@ -73,7 +73,7 @@ void DriverMonitorRenderer::draw(QPainter &painter, const QRect &surface_rect) { float y = surface_rect.height() - offset; float opacity = is_active ? 0.65f : 0.2f; - // FrogPilot variables + // StarPilot variables if (onroad_distance_btn_enabled) { if (is_rhd) { x -= UI_BORDER_SIZE + (btn_size + UI_BORDER_SIZE) + UI_BORDER_SIZE; @@ -82,7 +82,7 @@ void DriverMonitorRenderer::draw(QPainter &painter, const QRect &surface_rect) { } } - if (frogpilot_toggles.value("road_name_ui").toBool()) { + if (starpilot_toggles.value("road_name_ui").toBool()) { y -= UI_BORDER_SIZE; } @@ -118,10 +118,10 @@ void DriverMonitorRenderer::draw(QPainter &painter, const QRect &surface_rect) { painter.restore(); - // FrogPilot variables - if (frogpilot_nvg) { - frogpilot_nvg->dmIconPosition.setX(x); - frogpilot_nvg->dmIconPosition.setY(y); - frogpilot_nvg->rightHandDM = is_rhd; + // StarPilot variables + if (starpilot_nvg) { + starpilot_nvg->dmIconPosition.setX(x); + starpilot_nvg->dmIconPosition.setY(y); + starpilot_nvg->rightHandDM = is_rhd; } } diff --git a/selfdrive/ui/qt/onroad/driver_monitoring.h b/selfdrive/ui/qt/onroad/driver_monitoring.h index 8ecdbdb5..ef9efef4 100644 --- a/selfdrive/ui/qt/onroad/driver_monitoring.h +++ b/selfdrive/ui/qt/onroad/driver_monitoring.h @@ -4,7 +4,7 @@ #include #include "selfdrive/ui/ui.h" -#include "frogpilot/ui/qt/onroad/frogpilot_annotated_camera.h" +#include "starpilot/ui/qt/onroad/starpilot_annotated_camera.h" class DriverMonitorRenderer { public: @@ -12,12 +12,12 @@ public: void updateState(const UIState &s); void draw(QPainter &painter, const QRect &surface_rect); - // FrogPilot variables - FrogPilotAnnotatedCameraWidget *frogpilot_nvg; + // StarPilot variables + StarPilotAnnotatedCameraWidget *starpilot_nvg; bool onroad_distance_btn_enabled; - QJsonObject frogpilot_toggles; + QJsonObject starpilot_toggles; private: float driver_pose_vals[3] = {}; diff --git a/selfdrive/ui/qt/onroad/hud.cc b/selfdrive/ui/qt/onroad/hud.cc index 1e376bc4..dd9f7cca 100644 --- a/selfdrive/ui/qt/onroad/hud.cc +++ b/selfdrive/ui/qt/onroad/hud.cc @@ -28,8 +28,8 @@ void HudRenderer::updateState(const UIState &s) { is_cruise_set = set_speed > 0 && set_speed != SET_SPEED_NA; is_cruise_available = set_speed != -1; - if (is_cruise_set && frogpilot_toggles.value("set_speed_offset").toDouble() > 0) { - set_speed += frogpilot_toggles.value("set_speed_offset").toDouble(); + if (is_cruise_set && starpilot_toggles.value("set_speed_offset").toDouble() > 0) { + set_speed += starpilot_toggles.value("set_speed_offset").toDouble(); } if (is_cruise_set && !is_metric) { @@ -38,7 +38,7 @@ void HudRenderer::updateState(const UIState &s) { // Handle older routes where vEgoCluster is not set v_ego_cluster_seen = v_ego_cluster_seen || car_state.getVEgoCluster() != 0.0; - float v_ego = v_ego_cluster_seen && !frogpilot_toggles.value("use_wheel_speed").toBool() ? car_state.getVEgoCluster() : car_state.getVEgo(); + float v_ego = v_ego_cluster_seen && !starpilot_toggles.value("use_wheel_speed").toBool() ? car_state.getVEgoCluster() : car_state.getVEgo(); speed = std::max(0.0f, v_ego * (is_metric ? MS_TO_KPH : MS_TO_MPH)); } @@ -55,7 +55,7 @@ void HudRenderer::draw(QPainter &p, const QRect &surface_rect) { if (is_cruise_available) { drawSetSpeed(p, surface_rect); } - if (frogpilot_nvg->standstillDuration == 0 && !frogpilot_toggles.value("hide_speed").toBool()) { + if (starpilot_nvg->standstillDuration == 0 && !starpilot_toggles.value("hide_speed").toBool()) { drawCurrentSpeed(p, surface_rect); } @@ -67,17 +67,17 @@ void HudRenderer::drawSetSpeed(QPainter &p, const QRect &surface_rect) { const QSize default_size = {172, 204}; QSize set_speed_size = is_metric ? QSize(200, 204) : default_size; - // FrogPilot variables - if (frogpilot_nvg->speedLimitHeight != 0) { - set_speed_size.rheight() += frogpilot_nvg->speedLimitHeight; - if (frogpilot_toggles.value("speed_limit_vienna").toBool()) { + // StarPilot variables + if (starpilot_nvg->speedLimitHeight != 0) { + set_speed_size.rheight() += starpilot_nvg->speedLimitHeight; + if (starpilot_toggles.value("speed_limit_vienna").toBool()) { set_speed_size.rwidth() = 200; } } QRect set_speed_rect(QPoint(60 + (default_size.width() - set_speed_size.width()) / 2, 45), set_speed_size); - if (!frogpilot_toggles.value("hide_max_speed").toBool()) { + if (!starpilot_toggles.value("hide_max_speed").toBool()) { // Draw set speed box p.setPen(QPen(QColor(255, 255, 255, 75), 6)); p.setBrush(QColor(0, 0, 0, 166)); @@ -109,11 +109,11 @@ void HudRenderer::drawSetSpeed(QPainter &p, const QRect &surface_rect) { p.drawText(set_speed_rect.adjusted(0, 77, 0, 0), Qt::AlignTop | Qt::AlignHCenter, setSpeedStr); } - // FrogPilot variables - frogpilot_nvg->defaultSize = default_size; - frogpilot_nvg->isCruiseSet = is_cruise_set; - frogpilot_nvg->setSpeedRect = set_speed_rect; - frogpilot_nvg->speed = speed; + // StarPilot variables + starpilot_nvg->defaultSize = default_size; + starpilot_nvg->isCruiseSet = is_cruise_set; + starpilot_nvg->setSpeedRect = set_speed_rect; + starpilot_nvg->speed = speed; } void HudRenderer::drawCurrentSpeed(QPainter &p, const QRect &surface_rect) { diff --git a/selfdrive/ui/qt/onroad/hud.h b/selfdrive/ui/qt/onroad/hud.h index b443425b..2086cab9 100644 --- a/selfdrive/ui/qt/onroad/hud.h +++ b/selfdrive/ui/qt/onroad/hud.h @@ -3,7 +3,7 @@ #include #include "selfdrive/ui/ui.h" -#include "frogpilot/ui/qt/onroad/frogpilot_annotated_camera.h" +#include "starpilot/ui/qt/onroad/starpilot_annotated_camera.h" class HudRenderer : public QObject { Q_OBJECT @@ -13,10 +13,10 @@ public: void updateState(const UIState &s); void draw(QPainter &p, const QRect &surface_rect); - // FrogPilot variables - FrogPilotAnnotatedCameraWidget *frogpilot_nvg; + // StarPilot variables + StarPilotAnnotatedCameraWidget *starpilot_nvg; - QJsonObject frogpilot_toggles; + QJsonObject starpilot_toggles; private: void drawSetSpeed(QPainter &p, const QRect &surface_rect); diff --git a/selfdrive/ui/qt/onroad/moc_onroad_home.cc b/selfdrive/ui/qt/onroad/moc_onroad_home.cc index 2f239091..5fb75f45 100644 --- a/selfdrive/ui/qt/onroad/moc_onroad_home.cc +++ b/selfdrive/ui/qt/onroad/moc_onroad_home.cc @@ -38,12 +38,12 @@ QT_MOC_LITERAL(3, 32, 7), // "offroad" QT_MOC_LITERAL(4, 40, 11), // "updateState" QT_MOC_LITERAL(5, 52, 7), // "UIState" QT_MOC_LITERAL(6, 60, 1), // "s" -QT_MOC_LITERAL(7, 62, 16), // "FrogPilotUIState" +QT_MOC_LITERAL(7, 62, 16), // "StarPilotUIState" QT_MOC_LITERAL(8, 79, 2) // "fs" }, "OnroadWindow\0offroadTransition\0\0offroad\0" - "updateState\0UIState\0s\0FrogPilotUIState\0" + "updateState\0UIState\0s\0StarPilotUIState\0" "fs" }; #undef QT_MOC_LITERAL @@ -79,7 +79,7 @@ void OnroadWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id Q_UNUSED(_t) switch (_id) { case 0: _t->offroadTransition((*reinterpret_cast< bool(*)>(_a[1]))); break; - case 1: _t->updateState((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const FrogPilotUIState(*)>(_a[2]))); break; + case 1: _t->updateState((*reinterpret_cast< const UIState(*)>(_a[1])),(*reinterpret_cast< const StarPilotUIState(*)>(_a[2]))); break; default: ; } } diff --git a/selfdrive/ui/qt/onroad/model.cc b/selfdrive/ui/qt/onroad/model.cc index 54df1438..4c35ce63 100644 --- a/selfdrive/ui/qt/onroad/model.cc +++ b/selfdrive/ui/qt/onroad/model.cc @@ -35,49 +35,49 @@ void ModelRenderer::draw(QPainter &painter, const QRect &surface_rect) { drawLaneLines(painter); drawPath(painter, model, surface_rect.height()); - if ((longitudinal_control || frogpilot_toggles.value("lead_info").toBool()) && sm.alive("radarState") && !frogpilot_toggles.value("hide_lead_marker").toBool()) { + if ((longitudinal_control || starpilot_toggles.value("lead_info").toBool()) && sm.alive("radarState") && !starpilot_toggles.value("hide_lead_marker").toBool()) { update_leads(radar_state, model.getPosition()); const auto &lead_two = radar_state.getLeadTwo(); if (lead_one.getStatus()) { - if (lead_one.getModelProb() >= frogpilot_toggles.value("lead_detection_probability").toDouble()) { - drawLead(painter, lead_one, lead_vertices[0], surface_rect, QColor(frogpilot_toggles.value("lead_marker_color").toString())); + if (lead_one.getModelProb() >= starpilot_toggles.value("lead_detection_probability").toDouble()) { + drawLead(painter, lead_one, lead_vertices[0], surface_rect, QColor(starpilot_toggles.value("lead_marker_color").toString())); } else { - drawLead(painter, lead_one, lead_vertices[0], surface_rect, frogpilot_nvg->whiteColor()); + drawLead(painter, lead_one, lead_vertices[0], surface_rect, starpilot_nvg->whiteColor()); } } else { - // FrogPilot variables - frogpilot_nvg->leadTextRect = QRect(); + // StarPilot variables + starpilot_nvg->leadTextRect = QRect(); } if (lead_two.getStatus() && (std::abs(lead_one.getDRel() - lead_two.getDRel()) > 3.0)) { - drawLead(painter, lead_two, lead_vertices[1], surface_rect, QColor(frogpilot_toggles.value("lead_marker_color").toString())); + drawLead(painter, lead_two, lead_vertices[1], surface_rect, QColor(starpilot_toggles.value("lead_marker_color").toString())); } - // FrogPilot variables - SubMaster &fpsm = *(frogpilotUIState()->sm); - const cereal::FrogPilotRadarState::Reader &frogpilot_radar_state = fpsm["frogpilotRadarState"].getFrogpilotRadarState(); + // StarPilot variables + SubMaster &fpsm = *(starpilotUIState()->sm); + const cereal::StarPilotRadarState::Reader &starpilot_radar_state = fpsm["starpilotRadarState"].getStarpilotRadarState(); - const cereal::FrogPilotRadarState::LeadData::Reader &lead_left = frogpilot_radar_state.getLeadLeft(); - const cereal::FrogPilotRadarState::LeadData::Reader &lead_right = frogpilot_radar_state.getLeadRight(); + const cereal::StarPilotRadarState::LeadData::Reader &lead_left = starpilot_radar_state.getLeadLeft(); + const cereal::StarPilotRadarState::LeadData::Reader &lead_right = starpilot_radar_state.getLeadRight(); - updateAdjacentLeads(frogpilot_radar_state, model.getPosition()); + updateAdjacentLeads(starpilot_radar_state, model.getPosition()); - frogpilot_nvg->adjacentLeadTextRect = QRect(); + starpilot_nvg->adjacentLeadTextRect = QRect(); if (lead_left.getStatus() && lead_right.getStatus() && (lead_left.getDRel() < lead_right.getDRel())) { - drawLead(painter, reinterpret_cast(lead_left), adjacent_lead_vertices[0], surface_rect, frogpilot_nvg->blueColor(), true); - drawLead(painter, reinterpret_cast(lead_right), adjacent_lead_vertices[1], surface_rect, frogpilot_nvg->purpleColor(), true); + drawLead(painter, reinterpret_cast(lead_left), adjacent_lead_vertices[0], surface_rect, starpilot_nvg->blueColor(), true); + drawLead(painter, reinterpret_cast(lead_right), adjacent_lead_vertices[1], surface_rect, starpilot_nvg->purpleColor(), true); } else { if (lead_left.getStatus()) { - drawLead(painter, reinterpret_cast(lead_left), adjacent_lead_vertices[0], surface_rect, frogpilot_nvg->blueColor(), true); + drawLead(painter, reinterpret_cast(lead_left), adjacent_lead_vertices[0], surface_rect, starpilot_nvg->blueColor(), true); } if (lead_right.getStatus()) { - drawLead(painter, reinterpret_cast(lead_right), adjacent_lead_vertices[1], surface_rect, frogpilot_nvg->purpleColor(), true); + drawLead(painter, reinterpret_cast(lead_right), adjacent_lead_vertices[1], surface_rect, starpilot_nvg->purpleColor(), true); } } } - // FrogPilot variables - if (frogpilot_toggles.value("radar_tracks").toBool()) { + // StarPilot variables + if (starpilot_toggles.value("radar_tracks").toBool()) { updateRadarTracks(model.getPosition()); } @@ -104,7 +104,7 @@ void ModelRenderer::update_model(const cereal::ModelDataV2::Reader &model, const int max_idx = get_path_length_idx(lane_lines[0], max_distance); for (int i = 0; i < std::size(lane_line_vertices); i++) { lane_line_probs[i] = line_probs[i]; - mapLineToPolygon(lane_lines[i], (frogpilot_toggles.value("model_ui").toBool() ? frogpilot_toggles.value("lane_line_width").toDouble() : 0.025) * lane_line_probs[i], 0, &lane_line_vertices[i], max_idx); + mapLineToPolygon(lane_lines[i], (starpilot_toggles.value("model_ui").toBool() ? starpilot_toggles.value("lane_line_width").toDouble() : 0.025) * lane_line_probs[i], 0, &lane_line_vertices[i], max_idx); } // update road edges @@ -112,7 +112,7 @@ void ModelRenderer::update_model(const cereal::ModelDataV2::Reader &model, const const auto &edge_stds = model.getRoadEdgeStds(); for (int i = 0; i < std::size(road_edge_vertices); i++) { road_edge_stds[i] = edge_stds[i]; - mapLineToPolygon(road_edges[i], frogpilot_toggles.value("model_ui").toBool() ? frogpilot_toggles.value("road_edge_width").toDouble() : 0.025, 0, &road_edge_vertices[i], max_idx); + mapLineToPolygon(road_edges[i], starpilot_toggles.value("model_ui").toBool() ? starpilot_toggles.value("road_edge_width").toDouble() : 0.025, 0, &road_edge_vertices[i], max_idx); } // update path @@ -121,35 +121,35 @@ void ModelRenderer::update_model(const cereal::ModelDataV2::Reader &model, const max_distance = std::clamp((float)(lead_d - fmin(lead_d * 0.35, 10.)), 0.0f, max_distance); } max_idx = get_path_length_idx(model_position, max_distance); - // FrogPilot variables - float path_width = frogpilot_toggles.value("path_width").toDouble(); - if (frogpilot_toggles.value("dynamic_path_width").toBool()) { + // StarPilot variables + float path_width = starpilot_toggles.value("path_width").toDouble(); + if (starpilot_toggles.value("dynamic_path_width").toBool()) { UIState *s = uiState(); path_width *= s->status == STATUS_ENGAGED ? 1.0f : s->status == STATUS_ALWAYS_ON_LATERAL_ACTIVE ? 0.75f : 0.50f; } - mapLineToPolygon(model_position, frogpilot_toggles.value("model_ui").toBool() ? path_width * (1 - (frogpilot_toggles.value("path_edge_width").toDouble() / 100.0f)) : 0.9, path_offset_z, &track_vertices, max_idx, false); + mapLineToPolygon(model_position, starpilot_toggles.value("model_ui").toBool() ? path_width * (1 - (starpilot_toggles.value("path_edge_width").toDouble() / 100.0f)) : 0.9, path_offset_z, &track_vertices, max_idx, false); - // FrogPilot variables - FrogPilotUIState *fs = frogpilotUIState(); + // StarPilot variables + StarPilotUIState *fs = starpilotUIState(); SubMaster &fpsm = *(fs->sm); - const cereal::FrogPilotPlan::Reader &frogpilotPlan = fpsm["frogpilotPlan"].getFrogpilotPlan(); + const cereal::StarPilotPlan::Reader &starpilotPlan = fpsm["starpilotPlan"].getStarpilotPlan(); - frogpilot_nvg->track_vertices = track_vertices; + starpilot_nvg->track_vertices = track_vertices; - mapLineToPolygon(model_position, frogpilot_toggles.value("model_ui").toBool() ? path_width : 0, path_offset_z, &frogpilot_nvg->track_edge_vertices, max_idx, false); + mapLineToPolygon(model_position, starpilot_toggles.value("model_ui").toBool() ? path_width : 0, path_offset_z, &starpilot_nvg->track_edge_vertices, max_idx, false); - mapAveragedLineToPolygon(lane_lines[0], lane_lines[1], frogpilotPlan.getLaneWidthLeft() / 2.0f, 0, &frogpilot_nvg->track_adjacent_vertices[0], max_idx, height, false); - mapAveragedLineToPolygon(lane_lines[2], lane_lines[3], frogpilotPlan.getLaneWidthRight() / 2.0f, 0, &frogpilot_nvg->track_adjacent_vertices[1], max_idx, height, false); + mapAveragedLineToPolygon(lane_lines[0], lane_lines[1], starpilotPlan.getLaneWidthLeft() / 2.0f, 0, &starpilot_nvg->track_adjacent_vertices[0], max_idx, height, false); + mapAveragedLineToPolygon(lane_lines[2], lane_lines[3], starpilotPlan.getLaneWidthRight() / 2.0f, 0, &starpilot_nvg->track_adjacent_vertices[1], max_idx, height, false); } void ModelRenderer::drawLaneLines(QPainter &painter) { // lanelines for (int i = 0; i < std::size(lane_line_vertices); ++i) { - if (frogpilot_toggles.value("color_scheme").toString() != "stock") { + if (starpilot_toggles.value("color_scheme").toString() != "stock") { painter.setBrush(QColor::fromRgbF(1.0, 1.0, 1.0, std::clamp(lane_line_probs[i], 0.0, 0.7))); } else { - QColor lane_color = QColor(frogpilot_toggles.value("lane_lines_color").toString()); + QColor lane_color = QColor(starpilot_toggles.value("lane_lines_color").toString()); lane_color.setAlphaF(lane_color.alphaF() * std::clamp(lane_line_probs[i], 0.0, 0.7)); painter.setBrush(lane_color); } @@ -165,7 +165,7 @@ void ModelRenderer::drawLaneLines(QPainter &painter) { void ModelRenderer::drawPath(QPainter &painter, const cereal::ModelDataV2::Reader &model, int height) { QLinearGradient bg(0, height, 0, 0); - if (experimental_mode || frogpilot_toggles.value("acceleration_path").toBool() || frogpilot_toggles.value("rainbow_path").toBool()) { + if (experimental_mode || starpilot_toggles.value("acceleration_path").toBool() || starpilot_toggles.value("rainbow_path").toBool()) { // The first half of track_vertices are the points for the right side of the path const auto &acceleration = model.getAcceleration().getX(); const int max_len = std::min(track_vertices.length() / 2, acceleration.size()); @@ -178,10 +178,10 @@ void ModelRenderer::drawPath(QPainter &painter, const cereal::ModelDataV2::Reade // Flip so 0 is bottom of frame float lin_grad_point = (height - track_vertices[track_idx].y()) / height; - if ((fabs(acceleration[i]) < 0.25 || !frogpilot_toggles.value("acceleration_path").toBool()) && frogpilot_toggles.value("rainbow_path").toBool()) { - frogpilot_nvg->paintRainbowPath(painter, bg, lin_grad_point); - } else if (fabs(acceleration[i]) < 0.25 && frogpilot_toggles.value("color_scheme").toString() != "stock") { - QColor color = QColor(frogpilot_toggles.value("path_color").toString()); + if ((fabs(acceleration[i]) < 0.25 || !starpilot_toggles.value("acceleration_path").toBool()) && starpilot_toggles.value("rainbow_path").toBool()) { + starpilot_nvg->paintRainbowPath(painter, bg, lin_grad_point); + } else if (fabs(acceleration[i]) < 0.25 && starpilot_toggles.value("color_scheme").toString() != "stock") { + QColor color = QColor(starpilot_toggles.value("path_color").toString()); color.setAlphaF(util::map_val(lin_grad_point, 0.0f, 1.0f, 1.0f, 0.1f)); bg.setColorAt(lin_grad_point, color); } else { @@ -207,14 +207,14 @@ void ModelRenderer::drawPath(QPainter &painter, const cereal::ModelDataV2::Reade painter.setBrush(bg); painter.drawPolygon(track_vertices); - // FrogPilot variables - if (frogpilot_toggles.value("adjacent_paths").toBool() || frogpilot_toggles.value("adjacent_path_metrics").toBool()) { - frogpilot_nvg->paintAdjacentPaths(painter); - } else if (frogpilot_toggles.value("blind_spot_path").toBool()) { - frogpilot_nvg->paintBlindSpotPath(painter); + // StarPilot variables + if (starpilot_toggles.value("adjacent_paths").toBool() || starpilot_toggles.value("adjacent_path_metrics").toBool()) { + starpilot_nvg->paintAdjacentPaths(painter); + } else if (starpilot_toggles.value("blind_spot_path").toBool()) { + starpilot_nvg->paintBlindSpotPath(painter); } - frogpilot_nvg->paintPathEdges(painter, height); + starpilot_nvg->paintPathEdges(painter, height); } void ModelRenderer::updatePathGradient(QLinearGradient &bg) { @@ -293,9 +293,9 @@ void ModelRenderer::drawLead(QPainter &painter, const cereal::RadarState::LeadDa painter.setBrush(QColor(marker_color.red(), marker_color.green(), marker_color.blue(), fillAlpha)); painter.drawPolygon(chevron, std::size(chevron)); - // FrogPilot variables - if (frogpilot_toggles.value("lead_info").toBool()) { - frogpilot_nvg->paintLeadMetrics(painter, adjacent, chevron, lead_data); + // StarPilot variables + if (starpilot_toggles.value("lead_info").toBool()) { + starpilot_nvg->paintLeadMetrics(painter, adjacent, chevron, lead_data); } } @@ -329,7 +329,7 @@ void ModelRenderer::mapLineToPolygon(const cereal::XYZTData::Reader &line, float } } -// FrogPilot variables +// StarPilot variables void ModelRenderer::mapAveragedLineToPolygon(const cereal::XYZTData::Reader &line1, const cereal::XYZTData::Reader &line2, float y_off, float z_off, QPolygonF *pvd, int max_idx, float height, bool allow_invert) { const auto line_x1 = line1.getX(), line_y1 = line1.getY(), line_z1 = line1.getZ(); @@ -373,7 +373,7 @@ void ModelRenderer::mapAveragedLineToPolygon(const cereal::XYZTData::Reader &lin } } -void ModelRenderer::updateAdjacentLeads(const cereal::FrogPilotRadarState::Reader &radar_state, const cereal::XYZTData::Reader &line) { +void ModelRenderer::updateAdjacentLeads(const cereal::StarPilotRadarState::Reader &radar_state, const cereal::XYZTData::Reader &line) { for (int i = 0; i < 2; ++i) { const auto &lead_data = (i == 0) ? radar_state.getLeadLeft() : radar_state.getLeadRight(); if (lead_data.getStatus()) { @@ -384,10 +384,10 @@ void ModelRenderer::updateAdjacentLeads(const cereal::FrogPilotRadarState::Reade } void ModelRenderer::updateRadarTracks(const cereal::XYZTData::Reader &line) { - std::vector &radar_tracks = frogpilot_nvg->radar_tracks; + std::vector &radar_tracks = starpilot_nvg->radar_tracks; radar_tracks.clear(); - SubMaster &fpsm = *(frogpilotUIState()->sm); + SubMaster &fpsm = *(starpilotUIState()->sm); capnp::List::Reader radar_points = fpsm["liveTracks"].getLiveTracks().getPoints(); radar_tracks.reserve(radar_points.size()); diff --git a/selfdrive/ui/qt/onroad/model.h b/selfdrive/ui/qt/onroad/model.h index 53afad22..4addb5c8 100644 --- a/selfdrive/ui/qt/onroad/model.h +++ b/selfdrive/ui/qt/onroad/model.h @@ -5,7 +5,7 @@ #include "selfdrive/ui/ui.h" -#include "frogpilot/ui/qt/onroad/frogpilot_annotated_camera.h" +#include "starpilot/ui/qt/onroad/starpilot_annotated_camera.h" class ModelRenderer { public: @@ -13,12 +13,12 @@ public: void setTransform(const Eigen::Matrix3f &transform) { car_space_transform = transform; } void draw(QPainter &painter, const QRect &surface_rect); - // FrogPilot variables - FrogPilotAnnotatedCameraWidget *frogpilot_nvg; + // StarPilot variables + StarPilotAnnotatedCameraWidget *starpilot_nvg; - FrogPilotUIScene frogpilot_scene; + StarPilotUIScene starpilot_scene; - QJsonObject frogpilot_toggles; + QJsonObject starpilot_toggles; private: bool mapToScreen(float in_x, float in_y, float in_z, QPointF *out); @@ -46,10 +46,10 @@ private: Eigen::Matrix3f car_space_transform = Eigen::Matrix3f::Zero(); QRectF clip_region; - // FrogPilot variables + // StarPilot variables void mapAveragedLineToPolygon(const cereal::XYZTData::Reader &line1, const cereal::XYZTData::Reader &line2, float y_off, float z_off, QPolygonF *pvd, int max_idx, float height, bool allow_invert = true); - void updateAdjacentLeads(const cereal::FrogPilotRadarState::Reader &radar_state, const cereal::XYZTData::Reader &line); + void updateAdjacentLeads(const cereal::StarPilotRadarState::Reader &radar_state, const cereal::XYZTData::Reader &line); void updateRadarTracks(const cereal::XYZTData::Reader &line); QPointF adjacent_lead_vertices[2] = {}; diff --git a/selfdrive/ui/qt/onroad/onroad_home.cc b/selfdrive/ui/qt/onroad/onroad_home.cc index 0c968616..63d3f548 100644 --- a/selfdrive/ui/qt/onroad/onroad_home.cc +++ b/selfdrive/ui/qt/onroad/onroad_home.cc @@ -38,20 +38,20 @@ OnroadWindow::OnroadWindow(QWidget *parent) : QWidget(parent) { QObject::connect(uiState(), &UIState::uiUpdate, this, &OnroadWindow::updateState); QObject::connect(uiState(), &UIState::offroadTransition, this, &OnroadWindow::offroadTransition); - // FrogPilot variables - frogpilot_nvg = new FrogPilotAnnotatedCameraWidget(this); - frogpilot_onroad = new FrogPilotOnroadWindow(this); - frogpilot_onroad->setAttribute(Qt::WA_TransparentForMouseEvents, true); + // StarPilot variables + starpilot_nvg = new StarPilotAnnotatedCameraWidget(this); + starpilot_onroad = new StarPilotOnroadWindow(this); + starpilot_onroad->setAttribute(Qt::WA_TransparentForMouseEvents, true); - stacked_layout->addWidget(frogpilot_nvg); - stacked_layout->addWidget(frogpilot_onroad); + stacked_layout->addWidget(starpilot_nvg); + stacked_layout->addWidget(starpilot_onroad); - frogpilot_onroad->raise(); + starpilot_onroad->raise(); - nvg->frogpilot_nvg = frogpilot_nvg; + nvg->starpilot_nvg = starpilot_nvg; } -void OnroadWindow::updateState(const UIState &s, const FrogPilotUIState &fs) { +void OnroadWindow::updateState(const UIState &s, const StarPilotUIState &fs) { if (!s.scene.started) { return; } @@ -66,30 +66,30 @@ void OnroadWindow::updateState(const UIState &s, const FrogPilotUIState &fs) { update(); } - // FrogPilot variables - const FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - const QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + // StarPilot variables + const StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + const QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; - frogpilot_nvg->alertHeight = alerts->alertHeight; + starpilot_nvg->alertHeight = alerts->alertHeight; - frogpilot_onroad->bg = bg; - frogpilot_onroad->fps = nvg->fps; + starpilot_onroad->bg = bg; + starpilot_onroad->fps = nvg->fps; - nvg->frogpilot_nvg = frogpilot_nvg; + nvg->starpilot_nvg = starpilot_nvg; - nvg->frogpilot_scene = frogpilot_scene; - frogpilot_nvg->frogpilot_scene = frogpilot_scene; - frogpilot_onroad->frogpilot_scene = frogpilot_scene; + nvg->starpilot_scene = starpilot_scene; + starpilot_nvg->starpilot_scene = starpilot_scene; + starpilot_onroad->starpilot_scene = starpilot_scene; - alerts->frogpilot_toggles = frogpilot_toggles; - frogpilot_nvg->frogpilot_toggles = frogpilot_toggles; - frogpilot_onroad->frogpilot_toggles = frogpilot_toggles; - nvg->frogpilot_toggles = frogpilot_toggles; + alerts->starpilot_toggles = starpilot_toggles; + starpilot_nvg->starpilot_toggles = starpilot_toggles; + starpilot_onroad->starpilot_toggles = starpilot_toggles; + nvg->starpilot_toggles = starpilot_toggles; - frogpilot_onroad->setGeometry(rect()); + starpilot_onroad->setGeometry(rect()); - frogpilot_nvg->updateState(s, fs); - frogpilot_onroad->updateState(s, fs); + starpilot_nvg->updateState(s, fs); + starpilot_onroad->updateState(s, fs); } void OnroadWindow::offroadTransition(bool offroad) { @@ -101,9 +101,9 @@ void OnroadWindow::paintEvent(QPaintEvent *event) { p.fillRect(rect(), QColor(bg.red(), bg.green(), bg.blue(), 255)); } -// FrogPilot variables +// StarPilot variables void OnroadWindow::mousePressEvent(QMouseEvent* mouseEvent) { - frogpilot_nvg->mousePressEvent(mouseEvent); + starpilot_nvg->mousePressEvent(mouseEvent); if (mouseEvent->isAccepted()) { return; diff --git a/selfdrive/ui/qt/onroad/onroad_home.h b/selfdrive/ui/qt/onroad/onroad_home.h index 484ceaad..94925bf6 100644 --- a/selfdrive/ui/qt/onroad/onroad_home.h +++ b/selfdrive/ui/qt/onroad/onroad_home.h @@ -3,7 +3,7 @@ #include "selfdrive/ui/qt/onroad/alerts.h" #include "selfdrive/ui/qt/onroad/annotated_camera.h" -#include "frogpilot/ui/qt/onroad/frogpilot_onroad.h" +#include "starpilot/ui/qt/onroad/starpilot_onroad.h" class OnroadWindow : public QWidget { Q_OBJECT @@ -18,13 +18,13 @@ private: QColor bg = bg_colors[STATUS_DISENGAGED]; QHBoxLayout* split; - // FrogPilot variables + // StarPilot variables void mousePressEvent(QMouseEvent* mouseEvent); - FrogPilotAnnotatedCameraWidget *frogpilot_nvg; - FrogPilotOnroadWindow *frogpilot_onroad; + StarPilotAnnotatedCameraWidget *starpilot_nvg; + StarPilotOnroadWindow *starpilot_onroad; private slots: void offroadTransition(bool offroad); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); }; diff --git a/selfdrive/ui/qt/sidebar.cc b/selfdrive/ui/qt/sidebar.cc index 85ac61bb..a8d9ce68 100644 --- a/selfdrive/ui/qt/sidebar.cc +++ b/selfdrive/ui/qt/sidebar.cc @@ -44,12 +44,12 @@ Sidebar::Sidebar(QWidget *parent) : QFrame(parent), onroad(false), flag_pressed( pm = std::make_unique(std::vector{"bookmarkButton"}); - // FrogPilot variables - QObject::connect(frogpilotUIState(), &FrogPilotUIState::themeUpdated, this, &Sidebar::updateTheme); + // StarPilot variables + QObject::connect(starpilotUIState(), &StarPilotUIState::themeUpdated, this, &Sidebar::updateTheme); } void Sidebar::mousePressEvent(QMouseEvent *event) { - // FrogPilot variables + // StarPilot variables QPoint pos = event->pos(); static constexpr QRect cpuRect = {30, 496, 240, 126}; @@ -60,22 +60,22 @@ void Sidebar::mousePressEvent(QMouseEvent *event) { static int showMemory = 0; static int showTemp = 0; - FrogPilotUIState *fs = frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs->frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + StarPilotUIState *fs = starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs->starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; - if (cpuRect.contains(pos) && frogpilot_toggles.value("developer_ui").toBool()) { + if (cpuRect.contains(pos) && starpilot_toggles.value("developer_ui").toBool()) { showChip = (showChip + 1) % 3; params.putBool("ShowCPU", showChip == 1); params.putBool("ShowGPU", showChip == 2); - } else if (memoryRect.contains(pos) && frogpilot_toggles.value("developer_ui").toBool()) { + } else if (memoryRect.contains(pos) && starpilot_toggles.value("developer_ui").toBool()) { showMemory = (showMemory + 1) % 4; params.putBool("ShowMemoryUsage", showMemory == 1); params.putBool("ShowStorageLeft", showMemory == 2); params.putBool("ShowStorageUsed", showMemory == 3); - } else if (tempRect.contains(pos) && frogpilot_toggles.value("developer_ui").toBool()) { + } else if (tempRect.contains(pos) && starpilot_toggles.value("developer_ui").toBool()) { showTemp = (showTemp + 1) % 3; params.putBool("Fahrenheit", showTemp == 2); @@ -90,7 +90,7 @@ void Sidebar::mousePressEvent(QMouseEvent *event) { if (!(flag_pressed || mic_indicator_pressed || settings_pressed)) { update(); - updateFrogPilotToggles(); + updateStarPilotToggles(); } } @@ -115,16 +115,16 @@ void Sidebar::offroadTransition(bool offroad) { update(); } -void Sidebar::updateState(const UIState &s, const FrogPilotUIState &fs) { +void Sidebar::updateState(const UIState &s, const StarPilotUIState &fs) { if (!isVisible()) return; - // FrogPilot variables - const FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - const QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + // StarPilot variables + const StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + const QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; const SubMaster &fpsm = *(fs.sm); - const cereal::FrogPilotDeviceState::Reader &frogpilotDeviceState = fpsm["frogpilotDeviceState"].getFrogpilotDeviceState(); + const cereal::StarPilotDeviceState::Reader &starpilotDeviceState = fpsm["starpilotDeviceState"].getStarpilotDeviceState(); auto &sm = *(s.sm); @@ -143,28 +143,28 @@ void Sidebar::updateState(const UIState &s, const FrogPilotUIState &fs) { ItemStatus connectStatus; auto last_ping = deviceState.getLastAthenaPingTime(); if (desktop_force_online) { - connectStatus = ItemStatus{{tr("CONNECT"), tr("ONLINE")}, QColor(frogpilot_toggles.value("sidebar_color3").toString())}; + connectStatus = ItemStatus{{tr("CONNECT"), tr("ONLINE")}, QColor(starpilot_toggles.value("sidebar_color3").toString())}; } else if (last_ping == 0) { connectStatus = ItemStatus{{tr("CONNECT"), tr("OFFLINE")}, warning_color}; } else { connectStatus = nanos_since_boot() - last_ping < 80e9 - ? ItemStatus{{tr("CONNECT"), tr("ONLINE")}, QColor(frogpilot_toggles.value("sidebar_color3").toString())} + ? ItemStatus{{tr("CONNECT"), tr("ONLINE")}, QColor(starpilot_toggles.value("sidebar_color3").toString())} : ItemStatus{{tr("CONNECT"), tr("ERROR")}, danger_color}; } setProperty("connectStatus", QVariant::fromValue(connectStatus)); int maxTempC = deviceState.getMaxTempC(); - QString max_temp = frogpilot_toggles.value("fahrenheit").toBool() ? QString::number(maxTempC * 9 / 5 + 32) + "°F" : QString::number(maxTempC) + "°C"; - ItemStatus tempStatus = {{tr("TEMP"), frogpilot_toggles.value("numerical_temp").toBool() ? max_temp : tr("HIGH")}, danger_color}; + QString max_temp = starpilot_toggles.value("fahrenheit").toBool() ? QString::number(maxTempC * 9 / 5 + 32) + "°F" : QString::number(maxTempC) + "°C"; + ItemStatus tempStatus = {{tr("TEMP"), starpilot_toggles.value("numerical_temp").toBool() ? max_temp : tr("HIGH")}, danger_color}; auto ts = deviceState.getThermalStatus(); if (ts == cereal::DeviceState::ThermalStatus::GREEN) { - tempStatus = {{tr("TEMP"), frogpilot_toggles.value("numerical_temp").toBool() ? max_temp : tr("GOOD")}, QColor(frogpilot_toggles.value("sidebar_color1").toString())}; + tempStatus = {{tr("TEMP"), starpilot_toggles.value("numerical_temp").toBool() ? max_temp : tr("GOOD")}, QColor(starpilot_toggles.value("sidebar_color1").toString())}; } else if (ts == cereal::DeviceState::ThermalStatus::YELLOW) { - tempStatus = {{tr("TEMP"), frogpilot_toggles.value("numerical_temp").toBool() ? max_temp : tr("OK")}, warning_color}; + tempStatus = {{tr("TEMP"), starpilot_toggles.value("numerical_temp").toBool() ? max_temp : tr("OK")}, warning_color}; } setProperty("tempStatus", QVariant::fromValue(tempStatus)); - ItemStatus pandaStatus = {{tr("VEHICLE"), tr("ONLINE")}, QColor(frogpilot_toggles.value("sidebar_color2").toString())}; + ItemStatus pandaStatus = {{tr("VEHICLE"), tr("ONLINE")}, QColor(starpilot_toggles.value("sidebar_color2").toString())}; if (s.scene.pandaType == cereal::PandaState::PandaType::UNKNOWN) { pandaStatus = {{tr("NO"), tr("PANDA")}, danger_color}; } @@ -172,35 +172,35 @@ void Sidebar::updateState(const UIState &s, const FrogPilotUIState &fs) { setProperty("recordingAudio", s.scene.recording_audio); - // FrogPilot variables - if (frogpilot_toggles.value("cpu_metrics").toBool() || frogpilot_toggles.value("gpu_metrics").toBool()) { + // StarPilot variables + if (starpilot_toggles.value("cpu_metrics").toBool() || starpilot_toggles.value("gpu_metrics").toBool()) { capnp::List::Reader cpu_loads = deviceState.getCpuUsagePercent(); int cpu_usage = cpu_loads.size() != 0 ? std::accumulate(cpu_loads.begin(), cpu_loads.end(), 0) / cpu_loads.size() : 0; int gpu_usage = deviceState.getGpuUsagePercent(); - int usage = frogpilot_toggles.value("cpu_metrics").toBool() ? cpu_usage : gpu_usage; + int usage = starpilot_toggles.value("cpu_metrics").toBool() ? cpu_usage : gpu_usage; QString chip_usage = QString::number(usage) + "%"; - ItemStatus chipStatus = {{frogpilot_toggles.value("gpu_metrics").toBool() ? tr("GPU") : tr("CPU"), chip_usage}, QColor(frogpilot_toggles.value("sidebar_color2").toString())}; + ItemStatus chipStatus = {{starpilot_toggles.value("gpu_metrics").toBool() ? tr("GPU") : tr("CPU"), chip_usage}, QColor(starpilot_toggles.value("sidebar_color2").toString())}; if (usage >= 85) { - chipStatus = {{frogpilot_toggles.value("gpu_metrics").toBool() ? tr("GPU") : tr("CPU"), chip_usage}, danger_color}; + chipStatus = {{starpilot_toggles.value("gpu_metrics").toBool() ? tr("GPU") : tr("CPU"), chip_usage}, danger_color}; } else if (usage >= 70) { - chipStatus = {{frogpilot_toggles.value("gpu_metrics").toBool() ? tr("GPU") : tr("CPU"), chip_usage}, warning_color}; + chipStatus = {{starpilot_toggles.value("gpu_metrics").toBool() ? tr("GPU") : tr("CPU"), chip_usage}, warning_color}; } setProperty("chipStatus", QVariant::fromValue(chipStatus)); } - if (frogpilot_toggles.value("memory_metrics").toBool() || frogpilot_toggles.value("storage_left_metrics").toBool() || frogpilot_toggles.value("storage_used_metrics").toBool()) { + if (starpilot_toggles.value("memory_metrics").toBool() || starpilot_toggles.value("storage_left_metrics").toBool() || starpilot_toggles.value("storage_used_metrics").toBool()) { int free_space = deviceState.getFreeSpacePercent(); int memory_usage = deviceState.getMemoryUsagePercent(); - int storage_left = frogpilotDeviceState.getFreeSpace(); - int storage_used = frogpilotDeviceState.getUsedSpace(); + int storage_left = starpilotDeviceState.getFreeSpace(); + int storage_used = starpilotDeviceState.getUsedSpace(); QString memory = QString::number(memory_usage) + "%"; - QString storage = QString::number(frogpilot_toggles.value("storage_left_metrics").toBool() ? storage_left : storage_used) + tr(" GB"); + QString storage = QString::number(starpilot_toggles.value("storage_left_metrics").toBool() ? storage_left : storage_used) + tr(" GB"); - if (frogpilot_toggles.value("memory_metrics").toBool()) { - ItemStatus memoryStatus = {{tr("MEMORY"), memory}, QColor(frogpilot_toggles.value("sidebar_color3").toString())}; + if (starpilot_toggles.value("memory_metrics").toBool()) { + ItemStatus memoryStatus = {{tr("MEMORY"), memory}, QColor(starpilot_toggles.value("sidebar_color3").toString())}; if (memory_usage >= 85) { memoryStatus = {{tr("MEMORY"), memory}, danger_color}; } else if (memory_usage >= 70) { @@ -208,11 +208,11 @@ void Sidebar::updateState(const UIState &s, const FrogPilotUIState &fs) { } setProperty("memoryStatus", QVariant::fromValue(memoryStatus)); } else { - ItemStatus storageStatus = {{frogpilot_toggles.value("storage_left_metrics").toBool() ? tr("LEFT") : tr("USED"), storage}, QColor(frogpilot_toggles.value("sidebar_color3").toString())}; + ItemStatus storageStatus = {{starpilot_toggles.value("storage_left_metrics").toBool() ? tr("LEFT") : tr("USED"), storage}, QColor(starpilot_toggles.value("sidebar_color3").toString())}; if (free_space < 25 && free_space >= 10) { - storageStatus = {{frogpilot_toggles.value("storage_left_metrics").toBool() ? tr("LEFT") : tr("USED"), storage}, warning_color}; + storageStatus = {{starpilot_toggles.value("storage_left_metrics").toBool() ? tr("LEFT") : tr("USED"), storage}, warning_color}; } else if (10 > free_space) { - storageStatus = {{frogpilot_toggles.value("storage_left_metrics").toBool() ? tr("LEFT") : tr("USED"), storage}, danger_color}; + storageStatus = {{starpilot_toggles.value("storage_left_metrics").toBool() ? tr("LEFT") : tr("USED"), storage}, danger_color}; } setProperty("storageStatus", QVariant::fromValue(storageStatus)); } @@ -241,17 +241,17 @@ void Sidebar::paintEvent(QPaintEvent *event) { } p.setOpacity(1.0); - // FrogPilot variables - FrogPilotUIState *fs = frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs->frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + // StarPilot variables + StarPilotUIState *fs = starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs->starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; // network - if (frogpilot_toggles.value("ip_metrics").toBool()) { + if (starpilot_toggles.value("ip_metrics").toBool()) { p.setPen(QColor(0xff, 0xff, 0xff)); p.save(); p.setFont(InterFont(30)); - p.drawText(QRect(50, 196, 225, 27), Qt::AlignLeft | Qt::AlignVCenter, frogpilotUIState()->wifi->getIp4Address()); + p.drawText(QRect(50, 196, 225, 27), Qt::AlignLeft | Qt::AlignVCenter, starpilotUIState()->wifi->getIp4Address()); p.restore(); } else { int x = 58; @@ -275,29 +275,29 @@ void Sidebar::paintEvent(QPaintEvent *event) { // metrics drawMetric(p, temp_status.first, temp_status.second, 338); - if (frogpilot_toggles.value("cpu_metrics").toBool() || frogpilot_toggles.value("gpu_metrics").toBool()) { + if (starpilot_toggles.value("cpu_metrics").toBool() || starpilot_toggles.value("gpu_metrics").toBool()) { drawMetric(p, chip_status.first, chip_status.second, 496); } else { drawMetric(p, panda_status.first, panda_status.second, 496); } - if (frogpilot_toggles.value("memory_metrics").toBool()) { + if (starpilot_toggles.value("memory_metrics").toBool()) { drawMetric(p, memory_status.first, memory_status.second, 654); - } else if (frogpilot_toggles.value("storage_left_metrics").toBool() || frogpilot_toggles.value("storage_used_metrics").toBool()) { + } else if (starpilot_toggles.value("storage_left_metrics").toBool() || starpilot_toggles.value("storage_used_metrics").toBool()) { drawMetric(p, storage_status.first, storage_status.second, 654); } else { drawMetric(p, connect_status.first, connect_status.second, 654); } } -// FrogPilot variables +// StarPilot variables void Sidebar::showEvent(QShowEvent *event) { updateTheme(); } void Sidebar::updateTheme() { - loadImage("../../frogpilot/assets/active_theme/icons/button_home", home_img, home_gif, home_btn.size(), this); - loadImage("../../frogpilot/assets/active_theme/icons/button_flag", flag_img, flag_gif, home_btn.size(), this); - loadImage("../../frogpilot/assets/active_theme/icons/button_settings", settings_img, settings_gif, settings_btn.size(), this); + loadImage("../../starpilot/assets/active_theme/icons/button_home", home_img, home_gif, home_btn.size(), this); + loadImage("../../starpilot/assets/active_theme/icons/button_flag", flag_img, flag_gif, home_btn.size(), this); + loadImage("../../starpilot/assets/active_theme/icons/button_settings", settings_img, settings_gif, settings_btn.size(), this); // Keep stock icons visible when a theme is partial or missing an icon. if (!home_gif && home_img.isNull()) { diff --git a/selfdrive/ui/qt/sidebar.h b/selfdrive/ui/qt/sidebar.h index 770cf15b..6b57d0e8 100644 --- a/selfdrive/ui/qt/sidebar.h +++ b/selfdrive/ui/qt/sidebar.h @@ -20,7 +20,7 @@ class Sidebar : public QFrame { Q_PROPERTY(int netStrength MEMBER net_strength NOTIFY valueChanged); Q_PROPERTY(bool recordingAudio MEMBER recording_audio NOTIFY valueChanged); - // FrogPilot properties + // StarPilot properties Q_PROPERTY(ItemStatus chipStatus MEMBER chip_status NOTIFY valueChanged) Q_PROPERTY(ItemStatus memoryStatus MEMBER memory_status NOTIFY valueChanged) Q_PROPERTY(ItemStatus storageStatus MEMBER storage_status NOTIFY valueChanged) @@ -34,7 +34,7 @@ signals: public slots: void offroadTransition(bool offroad); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); protected: void paintEvent(QPaintEvent *event) override; @@ -65,14 +65,14 @@ protected: QString net_type; int net_strength = 0; - // FrogPilot variables + // StarPilot variables ItemStatus chip_status, memory_status, storage_status; private: std::unique_ptr pm; Networking *networking = nullptr; - // FrogPilot variables + // StarPilot variables void showEvent(QShowEvent *event); void updateTheme(); diff --git a/selfdrive/ui/qt/widgets/controls.h b/selfdrive/ui/qt/widgets/controls.h index 5ccf5ee2..789e9757 100644 --- a/selfdrive/ui/qt/widgets/controls.h +++ b/selfdrive/ui/qt/widgets/controls.h @@ -67,7 +67,7 @@ public slots: signals: void showDescriptionEvent(); - // FrogPilot variables + // StarPilot variables void hideDescriptionEvent(); protected: @@ -135,7 +135,7 @@ public: toggle.update(); } - // FrogPilot variables + // StarPilot variables void forceOn(bool force) { toggle.setEnabled(!force); if (force && !toggle.on) { diff --git a/selfdrive/ui/qt/widgets/input.cc b/selfdrive/ui/qt/widgets/input.cc index 32c6fcef..3cd6c8fa 100644 --- a/selfdrive/ui/qt/widgets/input.cc +++ b/selfdrive/ui/qt/widgets/input.cc @@ -142,7 +142,7 @@ InputDialog::InputDialog(const QString &title, QWidget *parent, const QString &s QObject::connect(k, &Keyboard::emitBackspace, this, [=]() { line->backspace(); - // FrogPilot variables + // StarPilot variables updateMaxLengthSublabel(line->text()); }); QObject::connect(k, &Keyboard::emitKey, this, [=](const QString &key) { @@ -161,7 +161,7 @@ QString InputDialog::getText(const QString &prompt, QWidget *parent, const QStri d.line->setText(defaultText); d.setMinLength(minLength); - // FrogPilot variables + // StarPilot variables d.setMaxLength(maxLength); d.updateMaxLengthSublabel(defaultText); @@ -197,7 +197,7 @@ void InputDialog::setMinLength(int length) { minLength = length; } -// FrogPilot variables +// StarPilot variables void InputDialog::setMaxLength(int length) { maxLength = length; } diff --git a/selfdrive/ui/qt/widgets/input.h b/selfdrive/ui/qt/widgets/input.h index 700e114f..ae567c4c 100644 --- a/selfdrive/ui/qt/widgets/input.h +++ b/selfdrive/ui/qt/widgets/input.h @@ -34,7 +34,7 @@ public: void setMinLength(int length); void show(); - // FrogPilot variables + // StarPilot variables void setMaxLength(int length); private: @@ -46,7 +46,7 @@ private: QVBoxLayout *main_layout; QPushButton *eye_btn; - // FrogPilot variables + // StarPilot variables void updateMaxLengthSublabel(const QString &text); int maxLength; diff --git a/selfdrive/ui/qt/window.cc b/selfdrive/ui/qt/window.cc index 52ab64f8..4693a58c 100644 --- a/selfdrive/ui/qt/window.cc +++ b/selfdrive/ui/qt/window.cc @@ -74,15 +74,15 @@ void MainWindow::closeSettings() { main_layout->setCurrentWidget(homeWindow); if (uiState()->scene.started) { - homeWindow->showSidebar(params.getBool("SidebarOpen") || frogpilotUIState()->frogpilot_scene.frogpilot_toggles.value("debug_mode").toBool()); + homeWindow->showSidebar(params.getBool("SidebarOpen") || starpilotUIState()->starpilot_scene.starpilot_toggles.value("debug_mode").toBool()); } } bool MainWindow::eventFilter(QObject *obj, QEvent *event) { - // FrogPilot variables - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + // StarPilot variables + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; bool ignore = false; switch (event->type()) { @@ -92,8 +92,8 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event) { case QEvent::MouseButtonPress: case QEvent::MouseMove: { // ignore events when device is awakened by resetInteractiveTimeout - ignore = !device()->isAwake() || frogpilot_scene.driver_camera_timer >= UI_FREQ / 2; - device()->resetInteractiveTimeout(frogpilot_toggles.value("screen_timeout").toInt(), frogpilot_toggles.value("screen_timeout_onroad").toInt()); + ignore = !device()->isAwake() || starpilot_scene.driver_camera_timer >= UI_FREQ / 2; + device()->resetInteractiveTimeout(starpilot_toggles.value("screen_timeout").toInt(), starpilot_toggles.value("screen_timeout_onroad").toInt()); break; } default: diff --git a/selfdrive/ui/qt/window.h b/selfdrive/ui/qt/window.h index f1389c29..2b533db1 100644 --- a/selfdrive/ui/qt/window.h +++ b/selfdrive/ui/qt/window.h @@ -23,6 +23,6 @@ private: SettingsWindow *settingsWindow; OnboardingWindow *onboardingWindow; - // FrogPilot variables + // StarPilot variables Params params; }; diff --git a/selfdrive/ui/soundd.py b/selfdrive/ui/soundd.py index e847ba0b..74f5c758 100644 --- a/selfdrive/ui/soundd.py +++ b/selfdrive/ui/soundd.py @@ -16,7 +16,7 @@ from openpilot.common.swaglog import cloudlog from openpilot.system import micd from openpilot.system.hardware import HARDWARE -from openpilot.frogpilot.common.frogpilot_variables import ACTIVE_THEME_PATH, ERROR_LOGS_PATH, RANDOM_EVENTS_PATH, get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_variables import ACTIVE_THEME_PATH, ERROR_LOGS_PATH, RANDOM_EVENTS_PATH, get_starpilot_toggles SAMPLE_RATE = 48000 SAMPLE_BUFFER = 4096 # (approx 100ms) @@ -34,8 +34,8 @@ if HARDWARE.get_device_type() in ("tici", "tizi"): AudibleAlert = car.CarControl.HUDControl.AudibleAlert -# FrogPilot variables -FrogPilotAudibleAlert = custom.FrogPilotCarControl.HUDControl.AudibleAlert +# StarPilot variables +StarPilotAudibleAlert = custom.StarPilotCarControl.HUDControl.AudibleAlert sound_list: dict[int, tuple[str, int | None, float]] = { @@ -51,21 +51,21 @@ sound_list: dict[int, tuple[str, int | None, float]] = { AudibleAlert.warningSoft: ("warning_soft.wav", None, MAX_VOLUME), AudibleAlert.warningImmediate: ("warning_immediate.wav", None, MAX_VOLUME), - # FrogPilot variables - FrogPilotAudibleAlert.angry: ("angry.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.continued: ("continued.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.dejaVu: ("dejaVu.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.doc: ("doc.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.fart: ("fart.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.firefox: ("firefox.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.goat: ("goat.wav", None, MAX_VOLUME), - FrogPilotAudibleAlert.hal9000: ("hal9000.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.mail: ("mail.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.nessie: ("nessie.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.noice: ("noice.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.startup: ("startup.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.thisIsFine: ("this_is_fine.wav", 1, MAX_VOLUME), - FrogPilotAudibleAlert.uwu: ("uwu.wav", 1, MAX_VOLUME), + # StarPilot variables + StarPilotAudibleAlert.angry: ("angry.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.continued: ("continued.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.dejaVu: ("dejaVu.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.doc: ("doc.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.fart: ("fart.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.firefox: ("firefox.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.goat: ("goat.wav", None, MAX_VOLUME), + StarPilotAudibleAlert.hal9000: ("hal9000.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.mail: ("mail.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.nessie: ("nessie.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.noice: ("noice.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.startup: ("startup.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.thisIsFine: ("this_is_fine.wav", 1, MAX_VOLUME), + StarPilotAudibleAlert.uwu: ("uwu.wav", 1, MAX_VOLUME), } if HARDWARE.get_device_type() in ("tici", "tizi"): sound_list.update({ @@ -93,10 +93,10 @@ class Soundd: self.spl_filter_weighted = FirstOrderFilter(0, 2.5, FILTER_DT, initialized=False) - # FrogPilot variables + # StarPilot variables self.params_memory = Params(memory=True) - self.frogpilot_toggles = get_frogpilot_toggles() + self.starpilot_toggles = get_starpilot_toggles() self.openpilot_crashed_played = False @@ -107,7 +107,7 @@ class Soundd: self.error_log = ERROR_LOGS_PATH / "error.txt" self.random_events_directory = RANDOM_EVENTS_PATH / "sounds" - self.update_frogpilot_sounds() + self.update_starpilot_sounds() def load_sounds(self): self.loaded_sounds: dict[int, np.ndarray] = {} @@ -182,10 +182,10 @@ class Soundd: elif sm.updated['selfdriveState']: new_alert = sm['selfdriveState'].alertSound.raw - # FrogPilot variables - new_frogpilot_alert = sm['frogpilotSelfdriveState'].alertSound.raw - if new_alert == AudibleAlert.none and new_frogpilot_alert != FrogPilotAudibleAlert.none: - new_alert = new_frogpilot_alert + # StarPilot variables + new_starpilot_alert = sm['starpilotSelfdriveState'].alertSound.raw + if new_alert == AudibleAlert.none and new_starpilot_alert != StarPilotAudibleAlert.none: + new_alert = new_starpilot_alert self.update_alert(new_alert) elif check_selfdrive_timeout_alert(sm): @@ -212,8 +212,8 @@ class Soundd: sm = messaging.SubMaster(['selfdriveState', 'soundPressure']) - # FrogPilot variables - sm = sm.extend(['frogpilotSelfdriveState', 'frogpilotPlan']) + # StarPilot variables + sm = sm.extend(['starpilotSelfdriveState', 'starpilotPlan']) with self.get_stream(sd) as stream: rk = Ratekeeper(20) @@ -226,11 +226,11 @@ class Soundd: self.spl_filter_weighted.update(sm["soundPressure"].soundPressureWeightedDb) self.current_volume = self.calculate_volume(float(self.spl_filter_weighted.x)) - if self.frogpilot_toggles.alert_volume_controller: + if self.starpilot_toggles.alert_volume_controller: self.auto_volume = self.current_volume self.current_volume = 0.0 - elif self.current_alert in self.volume_map and self.frogpilot_toggles.alert_volume_controller: + elif self.current_alert in self.volume_map and self.starpilot_toggles.alert_volume_controller: self.current_volume = self.volume_map[self.current_alert] if self.current_volume == 1.01: self.current_volume = self.auto_volume @@ -241,43 +241,43 @@ class Soundd: assert stream.active - # FrogPilot variables - frogpilot_toggles = get_frogpilot_toggles(sm) - if frogpilot_toggles != self.frogpilot_toggles: - self.frogpilot_toggles = frogpilot_toggles + # StarPilot variables + starpilot_toggles = get_starpilot_toggles(sm) + if starpilot_toggles != self.starpilot_toggles: + self.starpilot_toggles = starpilot_toggles - stream = self.update_frogpilot_sounds(sd, stream) + stream = self.update_starpilot_sounds(sd, stream) - def update_frogpilot_sounds(self, sd=None, stream=None): + def update_starpilot_sounds(self, sd=None, stream=None): self.volume_map = { - AudibleAlert.engage: self.frogpilot_toggles.engage_volume / 100.0, - AudibleAlert.disengage: self.frogpilot_toggles.disengage_volume / 100.0, - AudibleAlert.refuse: self.frogpilot_toggles.refuse_volume / 100.0, + AudibleAlert.engage: self.starpilot_toggles.engage_volume / 100.0, + AudibleAlert.disengage: self.starpilot_toggles.disengage_volume / 100.0, + AudibleAlert.refuse: self.starpilot_toggles.refuse_volume / 100.0, - AudibleAlert.prompt: self.frogpilot_toggles.prompt_volume / 100.0, - AudibleAlert.promptRepeat: self.frogpilot_toggles.prompt_volume / 100.0, - AudibleAlert.promptDistracted: self.frogpilot_toggles.promptDistracted_volume / 100.0, + AudibleAlert.prompt: self.starpilot_toggles.prompt_volume / 100.0, + AudibleAlert.promptRepeat: self.starpilot_toggles.prompt_volume / 100.0, + AudibleAlert.promptDistracted: self.starpilot_toggles.promptDistracted_volume / 100.0, - AudibleAlert.warningSoft: self.frogpilot_toggles.warningSoft_volume / 100.0, - AudibleAlert.warningImmediate: self.frogpilot_toggles.warningImmediate_volume / 100.0, + AudibleAlert.warningSoft: self.starpilot_toggles.warningSoft_volume / 100.0, + AudibleAlert.warningImmediate: self.starpilot_toggles.warningImmediate_volume / 100.0, - FrogPilotAudibleAlert.goat: self.frogpilot_toggles.prompt_volume / 100.0, - FrogPilotAudibleAlert.startup: self.frogpilot_toggles.engage_volume / 100.0 + StarPilotAudibleAlert.goat: self.starpilot_toggles.prompt_volume / 100.0, + StarPilotAudibleAlert.startup: self.starpilot_toggles.engage_volume / 100.0 } for sound in sound_list: if sound not in self.volume_map: self.volume_map[sound] = 1.01 - if self.frogpilot_toggles.sound_pack != "stock": + if self.starpilot_toggles.sound_pack != "stock": self.sound_directory = ACTIVE_THEME_PATH / "sounds" else: self.sound_directory = Path(BASEDIR) / "selfdrive" / "assets" / "sounds" - if self.frogpilot_toggles.sound_pack != self.previous_sound_pack: + if self.starpilot_toggles.sound_pack != self.previous_sound_pack: self.load_sounds() - self.previous_sound_pack = self.frogpilot_toggles.sound_pack + self.previous_sound_pack = self.starpilot_toggles.sound_pack if stream is not None: stream.close() diff --git a/selfdrive/ui/translations/main_uk.qm b/selfdrive/ui/translations/main_uk.qm index 5b1dc0b3..06fa6b09 100644 Binary files a/selfdrive/ui/translations/main_uk.qm and b/selfdrive/ui/translations/main_uk.qm differ diff --git a/selfdrive/ui/translations/main_uk.ts b/selfdrive/ui/translations/main_uk.ts index 3ee13fd3..2ff25ae0 100644 --- a/selfdrive/ui/translations/main_uk.ts +++ b/selfdrive/ui/translations/main_uk.ts @@ -404,7 +404,7 @@ DriveStats - FROGPILOT + STARPILOT ЖАБОПІЛОТ @@ -459,7 +459,7 @@ - FrogPilotAnnotatedCameraWidget + StarPilotAnnotatedCameraWidget m/s² м/с² @@ -526,7 +526,7 @@ - FrogPilotConfirmationDialog + StarPilotConfirmationDialog Reboot required to take effect. Треба перезавантажити для змін @@ -549,7 +549,7 @@ - FrogPilotDataPanel + StarPilotDataPanel DELETE ВИДАЛ. @@ -599,8 +599,8 @@ Перейменовано! - FrogPilot Backups - Бєкапи FrogPilot + StarPilot Backups + Бєкапи StarPilot BACKUP @@ -695,8 +695,8 @@ Імʼя вже використовується. Виберіть інше імʼя. - <b>Create, delete, or restore FrogPilot backups.</b> - <b>Створити, видалити чи відновити резервні копії FrogPilot.</b> + <b>Create, delete, or restore StarPilot backups.</b> + <b>Створити, видалити чи відновити резервні копії StarPilot.</b> Enter a name for this backup @@ -707,8 +707,8 @@ Стиснути цю резервну копію? Це збереже місце і буде працювати в фоновому режиму але займе трохи більше часу. - Choose a FrogPilot backup to delete - Виберіть резервну копію FrogPilot для видалення + Choose a StarPilot backup to delete + Виберіть резервну копію StarPilot для видалення Delete this backup? @@ -735,12 +735,12 @@ Виберіть резервну копію для видалення - FrogPilot Stats - Статистика FrogPilot + StarPilot Stats + Статистика StarPilot - <b>View your collected FrogPilot stats.</b> - <b>Перегляньте зібрану статистику FrogPilot.</b> + <b>View your collected StarPilot stats.</b> + <b>Перегляньте зібрану статистику StarPilot.</b> RESET @@ -751,8 +751,8 @@ ПЕРЕГЛЯД - Are you sure you want to reset all of your FrogPilot stats? - Ви впевнені, що хочете скинути всі ваші статистики FrogPilot? + Are you sure you want to reset all of your StarPilot stats? + Ви впевнені, що хочете скинути всі ваші статистики StarPilot? Reset @@ -968,7 +968,7 @@ - FrogPilotDevicePanel + StarPilotDevicePanel Device Settings Налаштування пристрою @@ -1147,7 +1147,7 @@ - FrogPilotDriveSummary + StarPilotDriveSummary Random Events Summary Підсумок випадкових подій @@ -1266,7 +1266,7 @@ - FrogPilotLateralPanel + StarPilotLateralPanel Advanced Lateral Tuning Розш. тюнінг кермування @@ -1557,7 +1557,7 @@ - FrogPilotLongitudinalPanel + StarPilotLongitudinalPanel Advanced Longitudinal Tuning Розш. поздовжній тюнінг @@ -2608,14 +2608,14 @@ - FrogPilotManageControl + StarPilotManageControl MANAGE КЕРУВАТИ - FrogPilotMapsPanel + StarPilotMapsPanel Manually Уручну @@ -2806,7 +2806,7 @@ - FrogPilotModelPanel + StarPilotModelPanel Automatically Download New Models Автоматично завантажувати нові моделі @@ -3049,7 +3049,7 @@ - FrogPilotModelReview + StarPilotModelReview Drive Rating Selection Вибір рейтингу поїздки @@ -3116,7 +3116,7 @@ - FrogPilotNavigationPanel + StarPilotNavigationPanel ADD ДОДАТ @@ -3206,8 +3206,8 @@ <b>Інструкції щодо налаштування Mapbox</b> для «Навігації без Prime підписки від comma». - <b>Automatically collect missing or incorrect speed limits while you drive</b> using speeds limits sourced from your dashboard (if supported), Mapbox, and "Navigate on openpilot".<br><br>When you're parked and connected to Wi-Fi, FrogPilot will automatically processes this data into a file to be used with the tool located at "SpeedLimitFiller.frogpilot.com".<br><br>You can download this file from "The Pond" in the "Download Speed Limits" menu.<br><br>Need a step-by-step guide? Visit <b>#speed-limit-filler</b> in the FrogPilot Discord! - <b>Автоматично збирайте відсутні або неправильні обмеження швидкості під час руху</b> за допомогою обмежень швидкості, отриманих з вашої приладової панелі (якщо це підтримується), Mapbox та «Navigate on openpilot».<br><br>Коли ви припаркувалися і підключилися до Wi-Fi, FrogPilot автоматично обробляє ці дані у файл, який можна використовувати за допомогою інструменту, розташованого за адресою «SpeedLimitFiller.frogpilot.com». <br><br>Ви можете завантажити цей файл з «The Pond» у меню «Завантажити обмеження швидкості».<br><br>Потрібна покрокова інструкція? Відвідайте <b>#speed-limit-filler</b> у FrogPilot Discord! + <b>Automatically collect missing or incorrect speed limits while you drive</b> using speeds limits sourced from your dashboard (if supported), Mapbox, and "Navigate on openpilot".<br><br>When you're parked and connected to Wi-Fi, StarPilot will automatically process this data into a file to be used with the "Speed Limit Filler" tool in "The Pond".<br><br>You can download this file from "The Pond" in the "Download Speed Limits" menu.<br><br>Need a step-by-step guide? Visit <b>#speed-limit-filler</b> in the StarPilot Discord! + <b>Автоматично збирайте відсутні або неправильні обмеження швидкості під час руху</b> за допомогою обмежень швидкості, отриманих з вашої приладової панелі (якщо це підтримується), Mapbox та «Navigate on openpilot».<br><br>Коли ви припаркувалися і підключилися до Wi-Fi, StarPilot автоматично обробляє ці дані у файл для використання з інструментом «Speed Limit Filler» у «The Pond».<br><br>Ви можете завантажити цей файл з «The Pond» у меню «Завантажити обмеження швидкості».<br><br>Потрібна покрокова інструкція? Відвідайте <b>#speed-limit-filler</b> у StarPilot Discord! Cancel the speed-limit update? @@ -3279,14 +3279,14 @@ It will reset in %1 hours and %2 minutes. - FrogPilotOnroadWindow + StarPilotOnroadWindow FPS: %1 | Min: %2 | Max: %3 | Avg: %4 КНС: %1 | Мін: %2 | Макс: %3 | Сер.: %4 - FrogPilotSettingsWindow + StarPilotSettingsWindow MANAGE КЕРУВАТИ @@ -3380,8 +3380,8 @@ It will reset in %1 hours and %2 minutes. <b>Налаштуйте гучність сповіщень та увімкніть персоналізовані сповіщення.</b> - <b>Fine-tune custom FrogPilot acceleration, braking, and steering controls.</b> - <b>Точне налаштування користувацьких елементів керування прискоренням, гальмуванням та рульовим керуванням FrogPilot.</b> + <b>Fine-tune custom StarPilot acceleration, braking, and steering controls.</b> + <b>Точне налаштування користувацьких елементів керування прискоренням, гальмуванням та рульовим керуванням StarPilot.</b> <b>Download map data for the "Speed Limit Controller" and configure "Navigate on openpilot" (NOO).</b> @@ -3392,8 +3392,8 @@ It will reset in %1 hours and %2 minutes. Налаштування системи - <b>Manage backups, device settings, screen options, storage, and tools to keep FrogPilot running smoothly.</b> - <b>Керуйте резервними копіями, налаштуваннями пристрою, параметрами екрана, сховищем та інструментами, щоб забезпечити безперебійну роботу FrogPilot.</b> + <b>Manage backups, device settings, screen options, storage, and tools to keep StarPilot running smoothly.</b> + <b>Керуйте резервними копіями, налаштуваннями пристрою, параметрами екрана, сховищем та інструментами, щоб забезпечити безперебійну роботу StarPilot.</b> <b>Customize the look of the driving screen and interface, including themes!</b> @@ -3431,7 +3431,7 @@ Developer - Highly customizable settings for seasoned enthusiasts - FrogPilotSoundsPanel + StarPilotSoundsPanel Disengage Volume Гучність деактивації @@ -3461,8 +3461,8 @@ Developer - Highly customizable settings for seasoned enthusiasts Гучність негайн. сповіщ. - FrogPilot Alerts - Сповіщення FrogPilot + StarPilot Alerts + Сповіщення StarPilot Green Light Alert @@ -3529,8 +3529,8 @@ Developer - Highly customizable settings for seasoned enthusiasts <b>Встановіть гучність для найгучніших попереджень, які вимагають негайної уваги.</b><br><br>Приклади: «НЕГАЙНА ДЕАКТИВАЦІЯ — Водій відволікся», «НЕГАЙНА ДЕАКТИВАЦІЯ — Водій не реагує». - <b>Optional FrogPilot alerts</b> that highlight driving events in a more noticeable way. - <b>Додаткові сповіщення FrogPilot</b>, які більш помітно підкреслюють події під час руху. + <b>Optional StarPilot alerts</b> that highlight driving events in a more noticeable way. + <b>Додаткові сповіщення StarPilot</b>, які більш помітно підкреслюють події під час руху. Goat Scream @@ -3558,7 +3558,7 @@ Developer - Highly customizable settings for seasoned enthusiasts - FrogPilotThemesPanel + StarPilotThemesPanel Color Scheme Колірна гамма @@ -3696,8 +3696,8 @@ Developer - Highly customizable settings for seasoned enthusiasts ШТАТН. - FROGPILOT - FROGPILOT + STARPILOT + STARPILOT CUSTOM @@ -3845,7 +3845,7 @@ Developer - Highly customizable settings for seasoned enthusiasts - FrogPilotUtilitiesPanel + StarPilotUtilitiesPanel Debug Mode Режим зневадження @@ -3967,8 +3967,8 @@ Developer - Highly customizable settings for seasoned enthusiasts Ви впевнені, що хочете скинути всі налаштування, щоб вони відповідали стандартним налаштуванням openpilot? - <b>Use FrogPilot's developer metrics on your next drive</b> to diagnose issues and improve bug reports. - <b>Використовуйте показники розробника FrogPilot під час наступної поїздки</b>, щоб діагностувати проблеми та поліпшити звіти про помилки. + <b>Use StarPilot's developer metrics on your next drive</b> to diagnose issues and improve bug reports. + <b>Використовуйте показники розробника StarPilot під час наступної поїздки</b>, щоб діагностувати проблеми та поліпшити звіти про помилки. <b>Reinstall the Panda firmware</b> to fix connection or reliability issues. @@ -4044,7 +4044,7 @@ Developer - Highly customizable settings for seasoned enthusiasts - FrogPilotVehiclesPanel + StarPilotVehiclesPanel SELECT ВИБІР @@ -4146,8 +4146,8 @@ Developer - Highly customizable settings for seasoned enthusiasts <b>Вимкніть поздовжне керування openpilot</b> і замість цього використовуйте стандартну систему ACC автомобіля. - <b>FrogPilot features for General Motors vehicles.</b> - <b>Функції FrogPilot для автомобілів General Motors.</b> + <b>StarPilot features for General Motors vehicles.</b> + <b>Функції StarPilot для автомобілів General Motors.</b> <b>Experimental GM tune by FrogsGoMoo</b> that attempts to smoothen stopping and takeoff control. Use at your own risk! @@ -4166,8 +4166,8 @@ Developer - Highly customizable settings for seasoned enthusiasts <b>Примусове зупинення та рушання</b> на автомобілі Chevy Volt 2017 року. - <b>FrogPilot features for Genesis, Hyundai, and Kia vehicles.</b> - <b>Функції FrogPilot для авто Genesis, Hyundai та Kia.</b> + <b>StarPilot features for Genesis, Hyundai, and Kia vehicles.</b> + <b>Функції StarPilot для авто Genesis, Hyundai та Kia.</b> <b>comma's new gas and brake control system</b> that improves acceleration and braking but may cause issues on some Genesis/Hyundai/Kia vehicles. @@ -4178,8 +4178,8 @@ Developer - Highly customizable settings for seasoned enthusiasts <b>Хак для підвищення крутного моменту рульового управління з «Taco Bell Run» від comma 2022 року.</b> Призначений для підвищення крутного моменту рульового управління на низьких швидкостях при поворотах вліво і вправо. - <b>FrogPilot features for Lexus and Toyota vehicles.</b> - <b>Функції FrogPilot для авто Lexus і Toyota.</b> + <b>StarPilot features for Lexus and Toyota vehicles.</b> + <b>Функції StarPilot для авто Lexus і Toyota.</b> <b>Automatically lock/unlock doors</b> when shifting in and out of drive. @@ -4290,8 +4290,8 @@ Developer - Highly customizable settings for seasoned enthusiasts Налаштування Acura/Honda - <b>FrogPilot features for Acura and Honda vehicles.</b> - <b>Функції FrogPilot для автомобілів Acura та Honda.</b> + <b>StarPilot features for Acura and Honda vehicles.</b> + <b>Функції StarPilot для автомобілів Acura та Honda.</b> Gentle Following @@ -4322,8 +4322,8 @@ Developer - Highly customizable settings for seasoned enthusiasts Налаштування Subaru - <b>FrogPilot features for Subaru vehicles.</b> - <b>Функції FrogPilot для автомобілів Subaru.</b> + <b>StarPilot features for Subaru vehicles.</b> + <b>Функції StarPilot для автомобілів Subaru.</b> Stop and Go @@ -4335,7 +4335,7 @@ Developer - Highly customizable settings for seasoned enthusiasts - FrogPilotVisualsPanel + StarPilotVisualsPanel Advanced UI Controls Розш. параметри інтерфейсу @@ -4901,8 +4901,8 @@ Developer - Highly customizable settings for seasoned enthusiasts <b>Відобразити всі точки радара</b>, згенеровані радаром автомобіля. - <b>Custom FrogPilot widgets</b> for the driving screen. - <b>Спеціальні віджети FrogPilot</b> для екрану водіння. + <b>Custom StarPilot widgets</b> for the driving screen. + <b>Спеціальні віджети StarPilot</b> для екрану водіння. <b>Color the driving path by planned acceleration and braking.</b> @@ -4969,8 +4969,8 @@ Developer - Highly customizable settings for seasoned enthusiasts <b>Збільште розмір карти</b> для зручнішого читання навігації. - <b>Select the map style</b> for "Navigate on openpilot" (NOO):<br><br><b>Stock openpilot</b>: Default comma.ai style<br><b>FrogPilot</b>: Official FrogPilot map style<br><b>Mapbox Streets</b>: Standard street-focused view<br><b>Mapbox Outdoors</b>: Emphasizes outdoor and terrain features<br><b>Mapbox Light</b>: Minimalist, bright theme<br><b>Mapbox Dark</b>: Minimalist, dark theme<br><b>Mapbox Navigation Day</b>: Optimized for daytime navigation<br><b>Mapbox Navigation Night</b>: Optimized for nighttime navigation<br><b>Mapbox Satellite</b>: Satellite imagery only<br><b>Mapbox Satellite Streets</b>: Hybrid satellite imagery with street labels<br><b>Mapbox Traffic Night</b>: Dark theme emphasizing traffic conditions<br><b>Mike's Personalized Style</b>: Customized hybrid satellite view - <b>Виберіть стиль карти</b> для «Навігація на openpilot» (NOO):<br><br><b>Стандартний openpilot</b>: Стиль comma.ai за замовчуванням<br><b>FrogPilot</b>: Офіційний стиль карти FrogPilot<br><b>Mapbox Streets</b>: Стандартний вигляд з акцентом на вулицях<br><b>Mapbox Outdoors</b>: Акцент на особливостях місцевості та ландшафту<br><b>Mapbox Light</b>: Мінімалістична, світла тема<br><b>Mapbox Dark</b>: Мінімалістична, темна тема<br><b>Mapbox Navigation Day</b>: Оптимізовано для денної навігації<br><b>Mapbox Navigation Night</b>: Оптимізовано для нічної навігації<br><b>Mapbox Satellite</b>: Тільки супутникові знімки<br><b>Mapbox Satellite Streets</b>: Гібридні супутникові знімки з позначками вулиць<br><b>Mapbox Traffic Night</b>: Темна тема, що підкреслює дорожні умови<br><b>Mike's Personalized Style</b>: Індивідуальний гібридний супутниковий вигляд + <b>Select the map style</b> for "Navigate on openpilot" (NOO):<br><br><b>Stock openpilot</b>: Default comma.ai style<br><b>StarPilot</b>: Official StarPilot map style<br><b>Mapbox Streets</b>: Standard street-focused view<br><b>Mapbox Outdoors</b>: Emphasizes outdoor and terrain features<br><b>Mapbox Light</b>: Minimalist, bright theme<br><b>Mapbox Dark</b>: Minimalist, dark theme<br><b>Mapbox Navigation Day</b>: Optimized for daytime navigation<br><b>Mapbox Navigation Night</b>: Optimized for nighttime navigation<br><b>Mapbox Satellite</b>: Satellite imagery only<br><b>Mapbox Satellite Streets</b>: Hybrid satellite imagery with street labels<br><b>Mapbox Traffic Night</b>: Dark theme emphasizing traffic conditions<br><b>Mike's Personalized Style</b>: Customized hybrid satellite view + <b>Виберіть стиль карти</b> для «Навігація на openpilot» (NOO):<br><br><b>Стандартний openpilot</b>: Стиль comma.ai за замовчуванням<br><b>StarPilot</b>: Офіційний стиль карти StarPilot<br><b>Mapbox Streets</b>: Стандартний вигляд з акцентом на вулицях<br><b>Mapbox Outdoors</b>: Акцент на особливостях місцевості та ландшафту<br><b>Mapbox Light</b>: Мінімалістична, світла тема<br><b>Mapbox Dark</b>: Мінімалістична, темна тема<br><b>Mapbox Navigation Day</b>: Оптимізовано для денної навігації<br><b>Mapbox Navigation Night</b>: Оптимізовано для нічної навігації<br><b>Mapbox Satellite</b>: Тільки супутникові знімки<br><b>Mapbox Satellite Streets</b>: Гібридні супутникові знімки з позначками вулиць<br><b>Mapbox Traffic Night</b>: Темна тема, що підкреслює дорожні умови<br><b>Mike's Personalized Style</b>: Індивідуальний гібридний супутниковий вигляд <b>Display the road name at the bottom of the driving screen</b> using data from "OpenStreetMap (OSM)". @@ -5009,7 +5009,7 @@ Developer - Highly customizable settings for seasoned enthusiasts Сховай мапу - FrogPilot + StarPilot ЖабоПілот @@ -5026,7 +5026,7 @@ Developer - Highly customizable settings for seasoned enthusiasts - FrogPilotWheelPanel + StarPilotWheelPanel Distance Button Кнопка відстані @@ -5268,8 +5268,8 @@ Developer - Highly customizable settings for seasoned enthusiasts openpilot завис 💩 - Please post the "Error Log" in the FrogPilot Discord! - Будь ласка, відправте «Журнал помилок» у FrogPilot Discord! + Please post the "Error Log" in the StarPilot Discord! + Будь ласка, відправте «Журнал помилок» у StarPilot Discord! openpilot crashed @@ -5395,7 +5395,7 @@ Developer - Highly customizable settings for seasoned enthusiasts Вихід - FrogPilot + StarPilot ЖабоПілот @@ -5538,32 +5538,32 @@ This may take up to a minute. Програма - FrogPilot + StarPilot ЖабоПілот - Welcome to FrogPilot! Since you're new to openpilot, the "Minimal" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! - Ласкаво просимо до FrogPilot! Оскільки ви новачок в openpilot, було застосовано попереднє налаштування «Мінімальне», але ви можете змінити його в будь-який час за допомогою кнопки «Рівень налаштування»! + Welcome to StarPilot! Since you're new to openpilot, the "Minimal" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! + Ласкаво просимо до StarPilot! Оскільки ви новачок в openpilot, було застосовано попереднє налаштування «Мінімальне», але ви можете змінити його в будь-який час за допомогою кнопки «Рівень налаштування»! - Welcome to FrogPilot! Since you're new to FrogPilot, the "Minimal" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! - Ласкаво просимо до FrogPilot! Оскільки ви новачок у FrogPilot, було застосовано попереднє налаштування «Мінімальне», але ви можете змінити його в будь-який час за допомогою кнопки «Рівень налаштування»! + Welcome to StarPilot! Since you're new to StarPilot, the "Minimal" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! + Ласкаво просимо до StarPilot! Оскільки ви новачок у StarPilot, було застосовано попереднє налаштування «Мінімальне», але ви можете змінити його в будь-який час за допомогою кнопки «Рівень налаштування»! - Since you're fairly new to FrogPilot, the "Minimal" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! - Оскільки ви ще не дуже добре знайомі з FrogPilot, було застосовано попереднє налаштування «Мінімальне», але ви можете змінити його в будь-який час за допомогою кнопки «Рівень налаштування»! + Since you're fairly new to StarPilot, the "Minimal" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! + Оскільки ви ще не дуже добре знайомі з StarPilot, було застосовано попереднє налаштування «Мінімальне», але ви можете змінити його в будь-який час за допомогою кнопки «Рівень налаштування»! Since you're experienced with openpilot, the "Standard" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! Оскільки ви маєте досвід роботи з openpilot, було застосовано попереднє налаштування «Стандарт», але ви можете змінити його в будь-який час за допомогою кнопки «Рівень налаштування»! - Since you're experienced with FrogPilot, the "Standard" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! - Оскільки ви маєте досвід роботи з FrogPilot, було застосовано стандартне попереднє налаштування «Standard», але ви можете змінити його в будь-який час за допомогою кнопки «Tuning Level»! + Since you're experienced with StarPilot, the "Standard" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! + Оскільки ви маєте досвід роботи з StarPilot, було застосовано стандартне попереднє налаштування «Standard», але ви можете змінити його в будь-який час за допомогою кнопки «Tuning Level»! - Since you're very experienced with FrogPilot, the "Advanced" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! - Оскільки ви маєте великий досвід роботи з FrogPilot, було застосовано попереднє налаштування «Advanced», але ви можете змінити його в будь-який час за допомогою кнопки «Tuning Level»! + Since you're very experienced with StarPilot, the "Advanced" toggle preset has been applied, but you can change this at any time via the "Tuning Level" button! + Оскільки ви маєте великий досвід роботи з StarPilot, було застосовано попереднє налаштування «Advanced», але ви можете змінити його в будь-який час за допомогою кнопки «Tuning Level»! @@ -5798,12 +5798,12 @@ This may take up to a minute. Поточна версія - Automatically Update FrogPilot - Автоматично оновлювати FrogPilot + Automatically Update StarPilot + Автоматично оновлювати StarPilot - FrogPilot will automatically update itself and it's assets when you're offroad and have an active internet connection. - FrogPilot автоматично оновлюватиме себе та свої ресурси, коли ви не в дорозі та маєте активне підключення до Інтернету. + StarPilot will automatically update itself and it's assets when you're offroad and have an active internet connection. + StarPilot автоматично оновлюватиме себе та свої ресурси, коли ви не в дорозі та маєте активне підключення до Інтернету. Download diff --git a/selfdrive/ui/ui b/selfdrive/ui/ui index b14740c2..739f7d68 100755 Binary files a/selfdrive/ui/ui and b/selfdrive/ui/ui differ diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index c617b272..9e70cc04 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -18,7 +18,7 @@ static void update_sockets(UIState *s) { s->sm->update(0); } -static void update_state(UIState *s, FrogPilotUIState *fs) { +static void update_state(UIState *s, StarPilotUIState *fs) { SubMaster &sm = *(s->sm); UIScene &scene = s->scene; @@ -64,21 +64,21 @@ static void update_state(UIState *s, FrogPilotUIState *fs) { auto params = Params(); scene.recording_audio = params.getBool("RecordAudio") && scene.started; - // FrogPilot variables - FrogPilotUIScene &frogpilot_scene = fs->frogpilot_scene; + // StarPilot variables + StarPilotUIScene &starpilot_scene = fs->starpilot_scene; if (sm.updated("carState")) { const cereal::CarState::Reader &carState = sm["carState"].getCarState(); - frogpilot_scene.parked = carState.getGearShifter() == cereal::CarState::GearShifter::PARK; - frogpilot_scene.reverse = carState.getGearShifter() == cereal::CarState::GearShifter::REVERSE; - frogpilot_scene.standstill = carState.getStandstill() && !frogpilot_scene.reverse; + starpilot_scene.parked = carState.getGearShifter() == cereal::CarState::GearShifter::PARK; + starpilot_scene.reverse = carState.getGearShifter() == cereal::CarState::GearShifter::REVERSE; + starpilot_scene.standstill = carState.getStandstill() && !starpilot_scene.reverse; } if (scene.started) { - frogpilot_scene.started_timer += 1; + starpilot_scene.started_timer += 1; } - scene.started |= frogpilot_scene.frogpilot_toggles.value("force_onroad").toBool(); - scene.started &= !frogpilot_scene.frogpilot_toggles.value("force_offroad").toBool(); + scene.started |= starpilot_scene.starpilot_toggles.value("force_onroad").toBool(); + scene.started &= !starpilot_scene.starpilot_toggles.value("force_offroad").toBool(); } void ui_update_params(UIState *s) { @@ -86,30 +86,30 @@ void ui_update_params(UIState *s) { s->scene.is_metric = params.getBool("IsMetric"); } -void UIState::updateStatus(FrogPilotUIState *fs) { - // FrogPilot variables - FrogPilotUIScene &frogpilot_scene = fs->frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; +void UIState::updateStatus(StarPilotUIState *fs) { + // StarPilot variables + StarPilotUIScene &starpilot_scene = fs->starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; if (scene.started && sm->updated("selfdriveState")) { auto ss = (*sm)["selfdriveState"].getSelfdriveState(); auto state = ss.getState(); - // FrogPilot variables + // StarPilot variables const UIStatus previous_status = status; if (state == cereal::SelfdriveState::OpenpilotState::PRE_ENABLED || state == cereal::SelfdriveState::OpenpilotState::OVERRIDING) { status = STATUS_OVERRIDE; - } else if (frogpilot_scene.always_on_lateral_active) { + } else if (starpilot_scene.always_on_lateral_active) { status = STATUS_ALWAYS_ON_LATERAL_ACTIVE; - } else if (frogpilot_scene.traffic_mode_enabled && ss.getEnabled()) { + } else if (starpilot_scene.traffic_mode_enabled && ss.getEnabled()) { status = STATUS_TRAFFIC_MODE_ENABLED; } else { status = ss.getEnabled() ? STATUS_ENGAGED : STATUS_DISENGAGED; } - // FrogPilot variables - frogpilot_scene.wake_up_screen = ss.getAlertStatus() != cereal::SelfdriveState::AlertStatus::NORMAL || (status != previous_status && status != STATUS_OVERRIDE); + // StarPilot variables + starpilot_scene.wake_up_screen = ss.getAlertStatus() != cereal::SelfdriveState::AlertStatus::NORMAL || (status != previous_status && status != STATUS_OVERRIDE); } if (engaged() != engaged_prev) { @@ -126,8 +126,8 @@ void UIState::updateStatus(FrogPilotUIState *fs) { started_prev = scene.started; emit offroadTransition(!scene.started); - // FrogPilot variables - if (frogpilot_toggles.value("tethering_config").toInt() == 2) { + // StarPilot variables + if (starpilot_toggles.value("tethering_config").toInt() == 2) { fs->wifi->setTetheringEnabled(scene.started); } } @@ -150,21 +150,21 @@ UIState::UIState(QObject *parent) : QObject(parent) { void UIState::update() { update_sockets(this); - update_state(this, frogpilotUIState()); - updateStatus(frogpilotUIState()); + update_state(this, starpilotUIState()); + updateStatus(starpilotUIState()); if (sm->frame % UI_FREQ == 0) { watchdog_kick(nanos_since_boot()); } - emit uiUpdate(*this, *frogpilotUIState()); + emit uiUpdate(*this, *starpilotUIState()); - // FrogPilot variables - FrogPilotUIState *fs = frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs->frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + // StarPilot variables + StarPilotUIState *fs = starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs->starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; - if (frogpilot_scene.downloading_update || frogpilot_scene.frogpilot_panel_active) { - device()->resetInteractiveTimeout(frogpilot_toggles.value("screen_timeout").toInt(), frogpilot_toggles.value("screen_timeout_onroad").toInt()); + if (starpilot_scene.downloading_update || starpilot_scene.starpilot_panel_active) { + device()->resetInteractiveTimeout(starpilot_toggles.value("screen_timeout").toInt(), starpilot_toggles.value("screen_timeout_onroad").toInt()); } fs->update(); @@ -177,7 +177,7 @@ Device::Device(QObject *parent) : brightness_filter(BACKLIGHT_OFFROAD, BACKLIGHT QObject::connect(uiState(), &UIState::uiUpdate, this, &Device::update); } -void Device::update(const UIState &s, const FrogPilotUIState &fs) { +void Device::update(const UIState &s, const StarPilotUIState &fs) { updateBrightness(s, fs); updateWakefulness(s, fs); } @@ -195,16 +195,16 @@ void Device::resetInteractiveTimeout(int timeout, int timeout_onroad) { if (timeout == -1) { timeout = (ignition_on ? 10 : 30); } else { - // FrogPilot variables + // StarPilot variables timeout = (ignition_on ? timeout_onroad : timeout); } interactive_timeout = timeout * UI_FREQ; } -void Device::updateBrightness(const UIState &s, const FrogPilotUIState &fs) { - // FrogPilot variables - const FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - const QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; +void Device::updateBrightness(const UIState &s, const StarPilotUIState &fs) { + // StarPilot variables + const StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + const QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; float clipped_brightness = offroad_brightness; if (s.scene.started && s.scene.light_sensor >= 0) { @@ -224,12 +224,12 @@ void Device::updateBrightness(const UIState &s, const FrogPilotUIState &fs) { int brightness = brightness_filter.update(clipped_brightness); if (!awake) { brightness = 0; - } else if (s.scene.started && !frogpilot_scene.wake_up_screen && interactive_timeout == 0 && frogpilot_toggles.value("standby_mode").toBool()) { + } else if (s.scene.started && !starpilot_scene.wake_up_screen && interactive_timeout == 0 && starpilot_toggles.value("standby_mode").toBool()) { brightness = 0; - } else if (s.scene.started && frogpilot_toggles.value("screen_brightness_onroad").toInt() != 101) { - brightness = interactive_timeout > 0 ? fmax(5, frogpilot_toggles.value("screen_brightness_onroad").toInt()) : frogpilot_toggles.value("screen_brightness_onroad").toInt(); - } else if (frogpilot_toggles.value("screen_brightness").toInt() != 101) { - brightness = frogpilot_toggles.value("screen_brightness").toInt(); + } else if (s.scene.started && starpilot_toggles.value("screen_brightness_onroad").toInt() != 101) { + brightness = interactive_timeout > 0 ? fmax(5, starpilot_toggles.value("screen_brightness_onroad").toInt()) : starpilot_toggles.value("screen_brightness_onroad").toInt(); + } else if (starpilot_toggles.value("screen_brightness").toInt() != 101) { + brightness = starpilot_toggles.value("screen_brightness").toInt(); } if (brightness != last_brightness) { @@ -240,23 +240,23 @@ void Device::updateBrightness(const UIState &s, const FrogPilotUIState &fs) { } } -void Device::updateWakefulness(const UIState &s, const FrogPilotUIState &fs) { - // FrogPilot variables - const FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - const QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; +void Device::updateWakefulness(const UIState &s, const StarPilotUIState &fs) { + // StarPilot variables + const StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + const QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; bool ignition_just_turned_off = !s.scene.ignition && ignition_on; ignition_on = s.scene.ignition; - if (ignition_on && frogpilot_toggles.value("standby_mode").toBool()) { - if (frogpilot_scene.wake_up_screen) { - resetInteractiveTimeout(frogpilot_toggles.value("screen_timeout").toInt(), frogpilot_toggles.value("screen_timeout_onroad").toInt()); + if (ignition_on && starpilot_toggles.value("standby_mode").toBool()) { + if (starpilot_scene.wake_up_screen) { + resetInteractiveTimeout(starpilot_toggles.value("screen_timeout").toInt(), starpilot_toggles.value("screen_timeout_onroad").toInt()); } else { resetInteractiveTimeout(0, 0); } } else if (ignition_just_turned_off) { - resetInteractiveTimeout(frogpilot_toggles.value("screen_timeout").toInt(), frogpilot_toggles.value("screen_timeout_onroad").toInt()); - } else if (ignition_on && frogpilot_toggles.value("screen_brightness_onroad").toInt() == 0) { + resetInteractiveTimeout(starpilot_toggles.value("screen_timeout").toInt(), starpilot_toggles.value("screen_timeout_onroad").toInt()); + } else if (ignition_on && starpilot_toggles.value("screen_brightness_onroad").toInt() == 0) { resetInteractiveTimeout(0, 0); } else if (interactive_timeout > 0 && --interactive_timeout == 0) { emit interactiveTimeout(); diff --git a/selfdrive/ui/ui.h b/selfdrive/ui/ui.h index 7b17347b..1c9cd7bf 100644 --- a/selfdrive/ui/ui.h +++ b/selfdrive/ui/ui.h @@ -15,7 +15,7 @@ #include "system/hardware/hw.h" #include "selfdrive/ui/qt/prime_state.h" -#include "frogpilot/ui/frogpilot_ui.h" +#include "starpilot/ui/starpilot_ui.h" const int UI_BORDER_SIZE = 30; const int UI_HEADER_HEIGHT = 420; @@ -45,7 +45,7 @@ typedef enum UIStatus { STATUS_OVERRIDE, STATUS_ENGAGED, - // FrogPilot variables + // StarPilot variables STATUS_ALWAYS_ON_LATERAL_ACTIVE, STATUS_CEM_DISABLED, STATUS_EXPERIMENTAL_MODE_ENABLED, @@ -57,7 +57,7 @@ const QColor bg_colors [] = { [STATUS_OVERRIDE] = QColor(0x91, 0x9b, 0x95, 0xf1), [STATUS_ENGAGED] = QColor(0x17, 0x86, 0x44, 0xf1), - // FrogPilot variables + // StarPilot variables [STATUS_ALWAYS_ON_LATERAL_ACTIVE] = QColor(0x0a, 0xba, 0xb5, 0xf1), [STATUS_CEM_DISABLED] = QColor(0xff, 0xff, 0x00, 0xf1), [STATUS_EXPERIMENTAL_MODE_ENABLED] = QColor(0xda, 0x6f, 0x25, 0xf1), @@ -81,7 +81,7 @@ class UIState : public QObject { public: UIState(QObject* parent = 0); - void updateStatus(FrogPilotUIState *fs); + void updateStatus(StarPilotUIState *fs); inline bool engaged() const { return scene.started && (*sm)["selfdriveState"].getSelfdriveState().getEnabled(); } @@ -93,7 +93,7 @@ public: PrimeState *prime_state; signals: - void uiUpdate(const UIState &s, const FrogPilotUIState &fs); + void uiUpdate(const UIState &s, const StarPilotUIState &fs); void offroadTransition(bool offroad); void engagedChanged(bool engaged); @@ -129,8 +129,8 @@ private: FirstOrderFilter brightness_filter; QFuture brightness_future; - void updateBrightness(const UIState &s, const FrogPilotUIState &fs); - void updateWakefulness(const UIState &s, const FrogPilotUIState &fs); + void updateBrightness(const UIState &s, const StarPilotUIState &fs); + void updateWakefulness(const UIState &s, const StarPilotUIState &fs); void setAwake(bool on); signals: @@ -139,7 +139,7 @@ signals: public slots: void resetInteractiveTimeout(int timeout = -1, int timeout_onroad = -1); - void update(const UIState &s, const FrogPilotUIState &fs); + void update(const UIState &s, const StarPilotUIState &fs); }; Device *device(); diff --git a/selfdrive/ui/ui_state.py b/selfdrive/ui/ui_state.py index 7df9cd42..b8714e2d 100644 --- a/selfdrive/ui/ui_state.py +++ b/selfdrive/ui/ui_state.py @@ -56,7 +56,7 @@ class UIState: "carControl", "liveParameters", "rawAudioData", - "frogpilotCarState", + "starpilotCarState", ] ) @@ -148,11 +148,11 @@ class UIState: self.is_metric = self.params.get_bool("IsMetric") self.always_on_dm = self.params.get_bool("AlwaysOnDM") - if self.sm.valid.get("frogpilotCarState", False): - frogpilot_car_state = self.sm["frogpilotCarState"] + if self.sm.valid.get("starpilotCarState", False): + starpilot_car_state = self.sm["starpilotCarState"] self.always_on_lateral_active = (not self.sm["selfdriveState"].enabled and - frogpilot_car_state.alwaysOnLateralEnabled) - self.traffic_mode_enabled = frogpilot_car_state.trafficModeEnabled + starpilot_car_state.alwaysOnLateralEnabled) + self.traffic_mode_enabled = starpilot_car_state.trafficModeEnabled else: self.always_on_lateral_active = False self.traffic_mode_enabled = False diff --git a/selfdrive/ui/update_translations.py b/selfdrive/ui/update_translations.py index 8405271e..6294244f 100755 --- a/selfdrive/ui/update_translations.py +++ b/selfdrive/ui/update_translations.py @@ -10,7 +10,7 @@ else: from openpilot.common.basedir import BASEDIR UI_DIR = os.path.join(BASEDIR, "selfdrive", "ui") -FROGPILOT_UI_DIR = os.path.join(BASEDIR, "frogpilot", "ui") +STARPILOT_UI_DIR = os.path.join(BASEDIR, "starpilot", "ui") TRANSLATIONS_DIR = os.path.join(UI_DIR, "translations") LANGUAGES_FILE = os.path.join(TRANSLATIONS_DIR, "languages.json") TRANSLATIONS_INCLUDE_FILE = os.path.join(TRANSLATIONS_DIR, "alerts_generated.h") @@ -82,7 +82,7 @@ def update_translations(vanish: bool = False, translation_files: None | list[str root = tree.getroot() backup = backup_translation_types(root) - args = f"lupdate -locations none -recursive {UI_DIR} {FROGPILOT_UI_DIR} -ts {tr_file} -I {BASEDIR}" + args = f"lupdate -locations none -recursive {UI_DIR} {STARPILOT_UI_DIR} -ts {tr_file} -I {BASEDIR}" if vanish: args += " -no-obsolete" if file in PLURAL_ONLY: diff --git a/frogpilot/assets/active_theme/colors b/starpilot/assets/active_theme/colors similarity index 100% rename from frogpilot/assets/active_theme/colors rename to starpilot/assets/active_theme/colors diff --git a/frogpilot/assets/active_theme/distance_icons b/starpilot/assets/active_theme/distance_icons similarity index 100% rename from frogpilot/assets/active_theme/distance_icons rename to starpilot/assets/active_theme/distance_icons diff --git a/frogpilot/assets/active_theme/icons b/starpilot/assets/active_theme/icons similarity index 100% rename from frogpilot/assets/active_theme/icons rename to starpilot/assets/active_theme/icons diff --git a/frogpilot/assets/active_theme/signals b/starpilot/assets/active_theme/signals similarity index 100% rename from frogpilot/assets/active_theme/signals rename to starpilot/assets/active_theme/signals diff --git a/frogpilot/assets/active_theme/sounds b/starpilot/assets/active_theme/sounds similarity index 100% rename from frogpilot/assets/active_theme/sounds rename to starpilot/assets/active_theme/sounds diff --git a/frogpilot/assets/download_functions.py b/starpilot/assets/download_functions.py similarity index 98% rename from frogpilot/assets/download_functions.py rename to starpilot/assets/download_functions.py index 421ce4e1..47f9dd1e 100644 --- a/frogpilot/assets/download_functions.py +++ b/starpilot/assets/download_functions.py @@ -6,7 +6,7 @@ import tempfile from datetime import datetime from pathlib import Path -from openpilot.frogpilot.common.frogpilot_utilities import delete_file, is_url_pingable +from openpilot.starpilot.common.starpilot_utilities import delete_file, is_url_pingable RESOURCES_REPO = os.getenv("STARPILOT_RESOURCES_REPO", "firestar5683/StarPilot-Resources") GITHUB_URL = f"https://raw.githubusercontent.com/{RESOURCES_REPO}" diff --git a/frogpilot/assets/holiday_themes/april_fools/colors/colors.json b/starpilot/assets/holiday_themes/april_fools/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/colors/colors.json rename to starpilot/assets/holiday_themes/april_fools/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/april_fools/icons/button_flag.png b/starpilot/assets/holiday_themes/april_fools/icons/button_flag.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/icons/button_flag.png rename to starpilot/assets/holiday_themes/april_fools/icons/button_flag.png diff --git a/frogpilot/assets/holiday_themes/april_fools/icons/button_home.gif b/starpilot/assets/holiday_themes/april_fools/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/icons/button_home.gif rename to starpilot/assets/holiday_themes/april_fools/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/april_fools/icons/button_settings.png b/starpilot/assets/holiday_themes/april_fools/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/icons/button_settings.png rename to starpilot/assets/holiday_themes/april_fools/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/april_fools/signals/traditional_125 b/starpilot/assets/holiday_themes/april_fools/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/signals/traditional_125 rename to starpilot/assets/holiday_themes/april_fools/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/april_fools/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/april_fools/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/april_fools/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/april_fools/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/april_fools/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/april_fools/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/april_fools/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/april_fools/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/april_fools/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/april_fools/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/april_fools/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/april_fools/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/april_fools/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/april_fools/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/april_fools/sounds/disengage.wav b/starpilot/assets/holiday_themes/april_fools/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/sounds/disengage.wav rename to starpilot/assets/holiday_themes/april_fools/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/april_fools/sounds/engage.wav b/starpilot/assets/holiday_themes/april_fools/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/sounds/engage.wav rename to starpilot/assets/holiday_themes/april_fools/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/april_fools/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/april_fools/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/april_fools/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/april_fools/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/colors/colors.json b/starpilot/assets/holiday_themes/christmas_week/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/colors/colors.json rename to starpilot/assets/holiday_themes/christmas_week/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/christmas_week/distance_icons/aggressive.png b/starpilot/assets/holiday_themes/christmas_week/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/distance_icons/aggressive.png rename to starpilot/assets/holiday_themes/christmas_week/distance_icons/aggressive.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/distance_icons/relaxed.png b/starpilot/assets/holiday_themes/christmas_week/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/distance_icons/relaxed.png rename to starpilot/assets/holiday_themes/christmas_week/distance_icons/relaxed.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/distance_icons/standard.png b/starpilot/assets/holiday_themes/christmas_week/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/distance_icons/standard.png rename to starpilot/assets/holiday_themes/christmas_week/distance_icons/standard.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/distance_icons/traffic.png b/starpilot/assets/holiday_themes/christmas_week/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/distance_icons/traffic.png rename to starpilot/assets/holiday_themes/christmas_week/distance_icons/traffic.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/icons/button_flag.gif b/starpilot/assets/holiday_themes/christmas_week/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/icons/button_flag.gif rename to starpilot/assets/holiday_themes/christmas_week/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/christmas_week/icons/button_home.gif b/starpilot/assets/holiday_themes/christmas_week/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/icons/button_home.gif rename to starpilot/assets/holiday_themes/christmas_week/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/christmas_week/icons/button_settings.png b/starpilot/assets/holiday_themes/christmas_week/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/icons/button_settings.png rename to starpilot/assets/holiday_themes/christmas_week/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/signals/traditional_125 b/starpilot/assets/holiday_themes/christmas_week/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/signals/traditional_125 rename to starpilot/assets/holiday_themes/christmas_week/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/christmas_week/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/christmas_week/sounds/disengage.wav b/starpilot/assets/holiday_themes/christmas_week/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/sounds/disengage.wav rename to starpilot/assets/holiday_themes/christmas_week/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/christmas_week/sounds/engage.wav b/starpilot/assets/holiday_themes/christmas_week/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/sounds/engage.wav rename to starpilot/assets/holiday_themes/christmas_week/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/christmas_week/sounds/startup.wav b/starpilot/assets/holiday_themes/christmas_week/sounds/startup.wav similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/sounds/startup.wav rename to starpilot/assets/holiday_themes/christmas_week/sounds/startup.wav diff --git a/frogpilot/assets/holiday_themes/christmas_week/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/christmas_week/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/christmas_week/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/christmas_week/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/colors/colors.json b/starpilot/assets/holiday_themes/cinco_de_mayo/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/colors/colors.json rename to starpilot/assets/holiday_themes/cinco_de_mayo/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/aggressive.png b/starpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/aggressive.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/aggressive.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/relaxed.png b/starpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/relaxed.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/relaxed.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/standard.png b/starpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/standard.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/standard.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/traffic.png b/starpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/traffic.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/distance_icons/traffic.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/icons/button_flag.gif b/starpilot/assets/holiday_themes/cinco_de_mayo/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/icons/button_flag.gif rename to starpilot/assets/holiday_themes/cinco_de_mayo/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/icons/button_home.gif b/starpilot/assets/holiday_themes/cinco_de_mayo/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/icons/button_home.gif rename to starpilot/assets/holiday_themes/cinco_de_mayo/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/icons/button_settings.png b/starpilot/assets/holiday_themes/cinco_de_mayo/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/icons/button_settings.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/signals/traditional_125 b/starpilot/assets/holiday_themes/cinco_de_mayo/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/signals/traditional_125 rename to starpilot/assets/holiday_themes/cinco_de_mayo/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/sounds/disengage.wav b/starpilot/assets/holiday_themes/cinco_de_mayo/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/sounds/disengage.wav rename to starpilot/assets/holiday_themes/cinco_de_mayo/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/sounds/engage.wav b/starpilot/assets/holiday_themes/cinco_de_mayo/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/sounds/engage.wav rename to starpilot/assets/holiday_themes/cinco_de_mayo/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/sounds/startup.wav b/starpilot/assets/holiday_themes/cinco_de_mayo/sounds/startup.wav similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/sounds/startup.wav rename to starpilot/assets/holiday_themes/cinco_de_mayo/sounds/startup.wav diff --git a/frogpilot/assets/holiday_themes/cinco_de_mayo/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/cinco_de_mayo/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/cinco_de_mayo/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/cinco_de_mayo/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/easter_week/colors/colors.json b/starpilot/assets/holiday_themes/easter_week/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/colors/colors.json rename to starpilot/assets/holiday_themes/easter_week/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/easter_week/icons/button_flag.gif b/starpilot/assets/holiday_themes/easter_week/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/icons/button_flag.gif rename to starpilot/assets/holiday_themes/easter_week/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/easter_week/icons/button_home.gif b/starpilot/assets/holiday_themes/easter_week/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/icons/button_home.gif rename to starpilot/assets/holiday_themes/easter_week/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/easter_week/icons/button_settings.png b/starpilot/assets/holiday_themes/easter_week/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/icons/button_settings.png rename to starpilot/assets/holiday_themes/easter_week/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/easter_week/signals/traditional_125 b/starpilot/assets/holiday_themes/easter_week/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/signals/traditional_125 rename to starpilot/assets/holiday_themes/easter_week/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/easter_week/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/easter_week/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/easter_week/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/easter_week/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/easter_week/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/easter_week/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/easter_week/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/easter_week/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/easter_week/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/easter_week/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/easter_week/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/easter_week/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/easter_week/sounds/disengage.wav b/starpilot/assets/holiday_themes/easter_week/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/sounds/disengage.wav rename to starpilot/assets/holiday_themes/easter_week/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/easter_week/sounds/engage.wav b/starpilot/assets/holiday_themes/easter_week/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/sounds/engage.wav rename to starpilot/assets/holiday_themes/easter_week/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/easter_week/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/easter_week/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/easter_week/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/easter_week/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/colors/colors.json b/starpilot/assets/holiday_themes/fourth_of_july/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/colors/colors.json rename to starpilot/assets/holiday_themes/fourth_of_july/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/distance_icons/aggressive.png b/starpilot/assets/holiday_themes/fourth_of_july/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/distance_icons/aggressive.png rename to starpilot/assets/holiday_themes/fourth_of_july/distance_icons/aggressive.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/distance_icons/relaxed.png b/starpilot/assets/holiday_themes/fourth_of_july/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/distance_icons/relaxed.png rename to starpilot/assets/holiday_themes/fourth_of_july/distance_icons/relaxed.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/distance_icons/standard.png b/starpilot/assets/holiday_themes/fourth_of_july/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/distance_icons/standard.png rename to starpilot/assets/holiday_themes/fourth_of_july/distance_icons/standard.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/distance_icons/traffic.png b/starpilot/assets/holiday_themes/fourth_of_july/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/distance_icons/traffic.png rename to starpilot/assets/holiday_themes/fourth_of_july/distance_icons/traffic.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/icons/button_flag.gif b/starpilot/assets/holiday_themes/fourth_of_july/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/icons/button_flag.gif rename to starpilot/assets/holiday_themes/fourth_of_july/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/icons/button_home.gif b/starpilot/assets/holiday_themes/fourth_of_july/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/icons/button_home.gif rename to starpilot/assets/holiday_themes/fourth_of_july/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/icons/button_settings.png b/starpilot/assets/holiday_themes/fourth_of_july/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/icons/button_settings.png rename to starpilot/assets/holiday_themes/fourth_of_july/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/signals/traditional_125 b/starpilot/assets/holiday_themes/fourth_of_july/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/signals/traditional_125 rename to starpilot/assets/holiday_themes/fourth_of_july/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/fourth_of_july/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/sounds/disengage.wav b/starpilot/assets/holiday_themes/fourth_of_july/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/sounds/disengage.wav rename to starpilot/assets/holiday_themes/fourth_of_july/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/sounds/engage.wav b/starpilot/assets/holiday_themes/fourth_of_july/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/sounds/engage.wav rename to starpilot/assets/holiday_themes/fourth_of_july/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/sounds/startup.wav b/starpilot/assets/holiday_themes/fourth_of_july/sounds/startup.wav similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/sounds/startup.wav rename to starpilot/assets/holiday_themes/fourth_of_july/sounds/startup.wav diff --git a/frogpilot/assets/holiday_themes/fourth_of_july/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/fourth_of_july/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/fourth_of_july/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/fourth_of_july/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/colors/colors.json b/starpilot/assets/holiday_themes/halloween_week/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/colors/colors.json rename to starpilot/assets/holiday_themes/halloween_week/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/halloween_week/distance_icons/aggressive.png b/starpilot/assets/holiday_themes/halloween_week/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/distance_icons/aggressive.png rename to starpilot/assets/holiday_themes/halloween_week/distance_icons/aggressive.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/distance_icons/relaxed.png b/starpilot/assets/holiday_themes/halloween_week/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/distance_icons/relaxed.png rename to starpilot/assets/holiday_themes/halloween_week/distance_icons/relaxed.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/distance_icons/standard.png b/starpilot/assets/holiday_themes/halloween_week/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/distance_icons/standard.png rename to starpilot/assets/holiday_themes/halloween_week/distance_icons/standard.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/distance_icons/traffic.png b/starpilot/assets/holiday_themes/halloween_week/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/distance_icons/traffic.png rename to starpilot/assets/holiday_themes/halloween_week/distance_icons/traffic.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/icons/button_flag.gif b/starpilot/assets/holiday_themes/halloween_week/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/icons/button_flag.gif rename to starpilot/assets/holiday_themes/halloween_week/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/halloween_week/icons/button_home.gif b/starpilot/assets/holiday_themes/halloween_week/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/icons/button_home.gif rename to starpilot/assets/holiday_themes/halloween_week/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/halloween_week/icons/button_settings.png b/starpilot/assets/holiday_themes/halloween_week/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/icons/button_settings.png rename to starpilot/assets/holiday_themes/halloween_week/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/signals/traditional_125 b/starpilot/assets/holiday_themes/halloween_week/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/signals/traditional_125 rename to starpilot/assets/holiday_themes/halloween_week/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/halloween_week/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/halloween_week/sounds/disengage.wav b/starpilot/assets/holiday_themes/halloween_week/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/sounds/disengage.wav rename to starpilot/assets/holiday_themes/halloween_week/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/halloween_week/sounds/engage.wav b/starpilot/assets/holiday_themes/halloween_week/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/sounds/engage.wav rename to starpilot/assets/holiday_themes/halloween_week/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/halloween_week/sounds/prompt.wav b/starpilot/assets/holiday_themes/halloween_week/sounds/prompt.wav similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/sounds/prompt.wav rename to starpilot/assets/holiday_themes/halloween_week/sounds/prompt.wav diff --git a/frogpilot/assets/holiday_themes/halloween_week/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/halloween_week/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/halloween_week/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/halloween_week/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/colors/colors.json b/starpilot/assets/holiday_themes/may_the_fourth/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/colors/colors.json rename to starpilot/assets/holiday_themes/may_the_fourth/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/distance_icons/aggressive.png b/starpilot/assets/holiday_themes/may_the_fourth/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/distance_icons/aggressive.png rename to starpilot/assets/holiday_themes/may_the_fourth/distance_icons/aggressive.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/distance_icons/relaxed.png b/starpilot/assets/holiday_themes/may_the_fourth/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/distance_icons/relaxed.png rename to starpilot/assets/holiday_themes/may_the_fourth/distance_icons/relaxed.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/distance_icons/standard.png b/starpilot/assets/holiday_themes/may_the_fourth/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/distance_icons/standard.png rename to starpilot/assets/holiday_themes/may_the_fourth/distance_icons/standard.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/distance_icons/traffic.png b/starpilot/assets/holiday_themes/may_the_fourth/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/distance_icons/traffic.png rename to starpilot/assets/holiday_themes/may_the_fourth/distance_icons/traffic.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/icons/button_flag.gif b/starpilot/assets/holiday_themes/may_the_fourth/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/icons/button_flag.gif rename to starpilot/assets/holiday_themes/may_the_fourth/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/icons/button_home.gif b/starpilot/assets/holiday_themes/may_the_fourth/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/icons/button_home.gif rename to starpilot/assets/holiday_themes/may_the_fourth/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/icons/button_settings.png b/starpilot/assets/holiday_themes/may_the_fourth/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/icons/button_settings.png rename to starpilot/assets/holiday_themes/may_the_fourth/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/signals/traditional_125 b/starpilot/assets/holiday_themes/may_the_fourth/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/signals/traditional_125 rename to starpilot/assets/holiday_themes/may_the_fourth/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/may_the_fourth/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/sounds/disengage.wav b/starpilot/assets/holiday_themes/may_the_fourth/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/sounds/disengage.wav rename to starpilot/assets/holiday_themes/may_the_fourth/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/sounds/engage.wav b/starpilot/assets/holiday_themes/may_the_fourth/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/sounds/engage.wav rename to starpilot/assets/holiday_themes/may_the_fourth/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/sounds/startup.wav b/starpilot/assets/holiday_themes/may_the_fourth/sounds/startup.wav similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/sounds/startup.wav rename to starpilot/assets/holiday_themes/may_the_fourth/sounds/startup.wav diff --git a/frogpilot/assets/holiday_themes/may_the_fourth/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/may_the_fourth/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/may_the_fourth/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/may_the_fourth/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/new_years/colors/colors.json b/starpilot/assets/holiday_themes/new_years/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/colors/colors.json rename to starpilot/assets/holiday_themes/new_years/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/new_years/distance_icons/aggressive.png b/starpilot/assets/holiday_themes/new_years/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/distance_icons/aggressive.png rename to starpilot/assets/holiday_themes/new_years/distance_icons/aggressive.png diff --git a/frogpilot/assets/holiday_themes/new_years/distance_icons/relaxed.png b/starpilot/assets/holiday_themes/new_years/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/distance_icons/relaxed.png rename to starpilot/assets/holiday_themes/new_years/distance_icons/relaxed.png diff --git a/frogpilot/assets/holiday_themes/new_years/distance_icons/standard.png b/starpilot/assets/holiday_themes/new_years/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/distance_icons/standard.png rename to starpilot/assets/holiday_themes/new_years/distance_icons/standard.png diff --git a/frogpilot/assets/holiday_themes/new_years/distance_icons/traffic.png b/starpilot/assets/holiday_themes/new_years/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/distance_icons/traffic.png rename to starpilot/assets/holiday_themes/new_years/distance_icons/traffic.png diff --git a/frogpilot/assets/holiday_themes/new_years/icons/button_flag.gif b/starpilot/assets/holiday_themes/new_years/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/icons/button_flag.gif rename to starpilot/assets/holiday_themes/new_years/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/new_years/icons/button_home.gif b/starpilot/assets/holiday_themes/new_years/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/icons/button_home.gif rename to starpilot/assets/holiday_themes/new_years/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/new_years/icons/button_settings.png b/starpilot/assets/holiday_themes/new_years/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/icons/button_settings.png rename to starpilot/assets/holiday_themes/new_years/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/new_years/signals/traditional_125 b/starpilot/assets/holiday_themes/new_years/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/signals/traditional_125 rename to starpilot/assets/holiday_themes/new_years/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/new_years/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/new_years/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/new_years/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/new_years/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/new_years/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/new_years/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/new_years/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/new_years/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/new_years/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/new_years/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/new_years/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/new_years/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/new_years/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/new_years/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/new_years/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/new_years/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/new_years/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/new_years/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/new_years/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/new_years/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/new_years/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/new_years/sounds/disengage.wav b/starpilot/assets/holiday_themes/new_years/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/sounds/disengage.wav rename to starpilot/assets/holiday_themes/new_years/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/new_years/sounds/engage.wav b/starpilot/assets/holiday_themes/new_years/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/sounds/engage.wav rename to starpilot/assets/holiday_themes/new_years/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/new_years/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/new_years/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/new_years/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/new_years/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/colors/colors.json b/starpilot/assets/holiday_themes/st_patricks_day/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/colors/colors.json rename to starpilot/assets/holiday_themes/st_patricks_day/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/distance_icons/aggressive.png b/starpilot/assets/holiday_themes/st_patricks_day/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/distance_icons/aggressive.png rename to starpilot/assets/holiday_themes/st_patricks_day/distance_icons/aggressive.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/distance_icons/relaxed.png b/starpilot/assets/holiday_themes/st_patricks_day/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/distance_icons/relaxed.png rename to starpilot/assets/holiday_themes/st_patricks_day/distance_icons/relaxed.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/distance_icons/standard.png b/starpilot/assets/holiday_themes/st_patricks_day/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/distance_icons/standard.png rename to starpilot/assets/holiday_themes/st_patricks_day/distance_icons/standard.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/distance_icons/traffic.png b/starpilot/assets/holiday_themes/st_patricks_day/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/distance_icons/traffic.png rename to starpilot/assets/holiday_themes/st_patricks_day/distance_icons/traffic.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/icons/button_flag.png b/starpilot/assets/holiday_themes/st_patricks_day/icons/button_flag.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/icons/button_flag.png rename to starpilot/assets/holiday_themes/st_patricks_day/icons/button_flag.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/icons/button_home.gif b/starpilot/assets/holiday_themes/st_patricks_day/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/icons/button_home.gif rename to starpilot/assets/holiday_themes/st_patricks_day/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/icons/button_settings.png b/starpilot/assets/holiday_themes/st_patricks_day/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/icons/button_settings.png rename to starpilot/assets/holiday_themes/st_patricks_day/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/signals/traditional_125 b/starpilot/assets/holiday_themes/st_patricks_day/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/signals/traditional_125 rename to starpilot/assets/holiday_themes/st_patricks_day/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/st_patricks_day/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/sounds/disengage.wav b/starpilot/assets/holiday_themes/st_patricks_day/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/sounds/disengage.wav rename to starpilot/assets/holiday_themes/st_patricks_day/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/sounds/engage.wav b/starpilot/assets/holiday_themes/st_patricks_day/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/sounds/engage.wav rename to starpilot/assets/holiday_themes/st_patricks_day/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/st_patricks_day/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/st_patricks_day/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/st_patricks_day/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/st_patricks_day/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/colors/colors.json b/starpilot/assets/holiday_themes/stitch_day/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/colors/colors.json rename to starpilot/assets/holiday_themes/stitch_day/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/stitch_day/distance_icons/aggressive.png b/starpilot/assets/holiday_themes/stitch_day/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/distance_icons/aggressive.png rename to starpilot/assets/holiday_themes/stitch_day/distance_icons/aggressive.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/distance_icons/relaxed.png b/starpilot/assets/holiday_themes/stitch_day/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/distance_icons/relaxed.png rename to starpilot/assets/holiday_themes/stitch_day/distance_icons/relaxed.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/distance_icons/standard.png b/starpilot/assets/holiday_themes/stitch_day/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/distance_icons/standard.png rename to starpilot/assets/holiday_themes/stitch_day/distance_icons/standard.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/distance_icons/traffic.png b/starpilot/assets/holiday_themes/stitch_day/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/distance_icons/traffic.png rename to starpilot/assets/holiday_themes/stitch_day/distance_icons/traffic.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/icons/button_flag.gif b/starpilot/assets/holiday_themes/stitch_day/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/icons/button_flag.gif rename to starpilot/assets/holiday_themes/stitch_day/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/stitch_day/icons/button_home.gif b/starpilot/assets/holiday_themes/stitch_day/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/icons/button_home.gif rename to starpilot/assets/holiday_themes/stitch_day/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/stitch_day/icons/button_settings.png b/starpilot/assets/holiday_themes/stitch_day/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/icons/button_settings.png rename to starpilot/assets/holiday_themes/stitch_day/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/signals/traditional_125 b/starpilot/assets/holiday_themes/stitch_day/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/signals/traditional_125 rename to starpilot/assets/holiday_themes/stitch_day/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/stitch_day/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/stitch_day/sounds/disengage.wav b/starpilot/assets/holiday_themes/stitch_day/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/sounds/disengage.wav rename to starpilot/assets/holiday_themes/stitch_day/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/stitch_day/sounds/engage.wav b/starpilot/assets/holiday_themes/stitch_day/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/sounds/engage.wav rename to starpilot/assets/holiday_themes/stitch_day/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/stitch_day/sounds/startup.wav b/starpilot/assets/holiday_themes/stitch_day/sounds/startup.wav similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/sounds/startup.wav rename to starpilot/assets/holiday_themes/stitch_day/sounds/startup.wav diff --git a/frogpilot/assets/holiday_themes/stitch_day/steering_wheel/wheel.gif b/starpilot/assets/holiday_themes/stitch_day/steering_wheel/wheel.gif similarity index 100% rename from frogpilot/assets/holiday_themes/stitch_day/steering_wheel/wheel.gif rename to starpilot/assets/holiday_themes/stitch_day/steering_wheel/wheel.gif diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/colors/colors.json b/starpilot/assets/holiday_themes/thanksgiving_week/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/colors/colors.json rename to starpilot/assets/holiday_themes/thanksgiving_week/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/distance_icons/aggressive.png b/starpilot/assets/holiday_themes/thanksgiving_week/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/distance_icons/aggressive.png rename to starpilot/assets/holiday_themes/thanksgiving_week/distance_icons/aggressive.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/distance_icons/relaxed.png b/starpilot/assets/holiday_themes/thanksgiving_week/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/distance_icons/relaxed.png rename to starpilot/assets/holiday_themes/thanksgiving_week/distance_icons/relaxed.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/distance_icons/standard.png b/starpilot/assets/holiday_themes/thanksgiving_week/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/distance_icons/standard.png rename to starpilot/assets/holiday_themes/thanksgiving_week/distance_icons/standard.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/distance_icons/traffic.png b/starpilot/assets/holiday_themes/thanksgiving_week/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/distance_icons/traffic.png rename to starpilot/assets/holiday_themes/thanksgiving_week/distance_icons/traffic.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/icons/button_flag.gif b/starpilot/assets/holiday_themes/thanksgiving_week/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/icons/button_flag.gif rename to starpilot/assets/holiday_themes/thanksgiving_week/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/icons/button_home.gif b/starpilot/assets/holiday_themes/thanksgiving_week/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/icons/button_home.gif rename to starpilot/assets/holiday_themes/thanksgiving_week/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/icons/button_settings.png b/starpilot/assets/holiday_themes/thanksgiving_week/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/icons/button_settings.png rename to starpilot/assets/holiday_themes/thanksgiving_week/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/signals/traditional_125 b/starpilot/assets/holiday_themes/thanksgiving_week/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/signals/traditional_125 rename to starpilot/assets/holiday_themes/thanksgiving_week/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/thanksgiving_week/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/sounds/disengage.wav b/starpilot/assets/holiday_themes/thanksgiving_week/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/sounds/disengage.wav rename to starpilot/assets/holiday_themes/thanksgiving_week/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/sounds/engage.wav b/starpilot/assets/holiday_themes/thanksgiving_week/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/sounds/engage.wav rename to starpilot/assets/holiday_themes/thanksgiving_week/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/thanksgiving_week/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/thanksgiving_week/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/thanksgiving_week/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/thanksgiving_week/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/colors/colors.json b/starpilot/assets/holiday_themes/valentines_day/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/colors/colors.json rename to starpilot/assets/holiday_themes/valentines_day/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/valentines_day/distance_icons/aggressive.gif b/starpilot/assets/holiday_themes/valentines_day/distance_icons/aggressive.gif similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/distance_icons/aggressive.gif rename to starpilot/assets/holiday_themes/valentines_day/distance_icons/aggressive.gif diff --git a/frogpilot/assets/holiday_themes/valentines_day/distance_icons/relaxed.gif b/starpilot/assets/holiday_themes/valentines_day/distance_icons/relaxed.gif similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/distance_icons/relaxed.gif rename to starpilot/assets/holiday_themes/valentines_day/distance_icons/relaxed.gif diff --git a/frogpilot/assets/holiday_themes/valentines_day/distance_icons/standard.gif b/starpilot/assets/holiday_themes/valentines_day/distance_icons/standard.gif similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/distance_icons/standard.gif rename to starpilot/assets/holiday_themes/valentines_day/distance_icons/standard.gif diff --git a/frogpilot/assets/holiday_themes/valentines_day/distance_icons/traffic.gif b/starpilot/assets/holiday_themes/valentines_day/distance_icons/traffic.gif similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/distance_icons/traffic.gif rename to starpilot/assets/holiday_themes/valentines_day/distance_icons/traffic.gif diff --git a/frogpilot/assets/holiday_themes/valentines_day/icons/button_flag.png b/starpilot/assets/holiday_themes/valentines_day/icons/button_flag.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/icons/button_flag.png rename to starpilot/assets/holiday_themes/valentines_day/icons/button_flag.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/icons/button_home.gif b/starpilot/assets/holiday_themes/valentines_day/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/icons/button_home.gif rename to starpilot/assets/holiday_themes/valentines_day/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/valentines_day/icons/button_settings.png b/starpilot/assets/holiday_themes/valentines_day/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/icons/button_settings.png rename to starpilot/assets/holiday_themes/valentines_day/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/signals/traditional_125 b/starpilot/assets/holiday_themes/valentines_day/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/signals/traditional_125 rename to starpilot/assets/holiday_themes/valentines_day/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/valentines_day/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/valentines_day/sounds/disengage.wav b/starpilot/assets/holiday_themes/valentines_day/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/sounds/disengage.wav rename to starpilot/assets/holiday_themes/valentines_day/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/valentines_day/sounds/engage.wav b/starpilot/assets/holiday_themes/valentines_day/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/sounds/engage.wav rename to starpilot/assets/holiday_themes/valentines_day/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/valentines_day/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/valentines_day/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/valentines_day/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/valentines_day/steering_wheel/wheel.png diff --git a/frogpilot/assets/holiday_themes/world_frog_day/colors/colors.json b/starpilot/assets/holiday_themes/world_frog_day/colors/colors.json similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/colors/colors.json rename to starpilot/assets/holiday_themes/world_frog_day/colors/colors.json diff --git a/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/aggressive.gif b/starpilot/assets/holiday_themes/world_frog_day/distance_icons/aggressive.gif similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/distance_icons/aggressive.gif rename to starpilot/assets/holiday_themes/world_frog_day/distance_icons/aggressive.gif diff --git a/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/relaxed.gif b/starpilot/assets/holiday_themes/world_frog_day/distance_icons/relaxed.gif similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/distance_icons/relaxed.gif rename to starpilot/assets/holiday_themes/world_frog_day/distance_icons/relaxed.gif diff --git a/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/standard.gif b/starpilot/assets/holiday_themes/world_frog_day/distance_icons/standard.gif similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/distance_icons/standard.gif rename to starpilot/assets/holiday_themes/world_frog_day/distance_icons/standard.gif diff --git a/frogpilot/assets/holiday_themes/world_frog_day/distance_icons/traffic.gif b/starpilot/assets/holiday_themes/world_frog_day/distance_icons/traffic.gif similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/distance_icons/traffic.gif rename to starpilot/assets/holiday_themes/world_frog_day/distance_icons/traffic.gif diff --git a/frogpilot/assets/holiday_themes/world_frog_day/icons/button_flag.gif b/starpilot/assets/holiday_themes/world_frog_day/icons/button_flag.gif similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/icons/button_flag.gif rename to starpilot/assets/holiday_themes/world_frog_day/icons/button_flag.gif diff --git a/frogpilot/assets/holiday_themes/world_frog_day/icons/button_home.gif b/starpilot/assets/holiday_themes/world_frog_day/icons/button_home.gif similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/icons/button_home.gif rename to starpilot/assets/holiday_themes/world_frog_day/icons/button_home.gif diff --git a/frogpilot/assets/holiday_themes/world_frog_day/icons/button_settings.png b/starpilot/assets/holiday_themes/world_frog_day/icons/button_settings.png similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/icons/button_settings.png rename to starpilot/assets/holiday_themes/world_frog_day/icons/button_settings.png diff --git a/frogpilot/assets/holiday_themes/world_frog_day/signals/traditional_125 b/starpilot/assets/holiday_themes/world_frog_day/signals/traditional_125 similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/signals/traditional_125 rename to starpilot/assets/holiday_themes/world_frog_day/signals/traditional_125 diff --git a/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_1.png b/starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_1.png similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_1.png rename to starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_1.png diff --git a/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_2.png b/starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_2.png similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_2.png rename to starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_2.png diff --git a/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_3.png b/starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_3.png similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_3.png rename to starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_3.png diff --git a/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_4.png b/starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_4.png similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_4.png rename to starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_4.png diff --git a/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_5.png b/starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_5.png similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_5.png rename to starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_5.png diff --git a/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_6.png b/starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_6.png similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_6.png rename to starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_6.png diff --git a/frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_blindspot.png b/starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_blindspot.png similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_blindspot.png rename to starpilot/assets/holiday_themes/world_frog_day/signals/turn_signal_blindspot.png diff --git a/frogpilot/assets/holiday_themes/world_frog_day/sounds/disengage.wav b/starpilot/assets/holiday_themes/world_frog_day/sounds/disengage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/sounds/disengage.wav rename to starpilot/assets/holiday_themes/world_frog_day/sounds/disengage.wav diff --git a/frogpilot/assets/holiday_themes/world_frog_day/sounds/engage.wav b/starpilot/assets/holiday_themes/world_frog_day/sounds/engage.wav similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/sounds/engage.wav rename to starpilot/assets/holiday_themes/world_frog_day/sounds/engage.wav diff --git a/frogpilot/assets/holiday_themes/world_frog_day/steering_wheel/wheel.png b/starpilot/assets/holiday_themes/world_frog_day/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/holiday_themes/world_frog_day/steering_wheel/wheel.png rename to starpilot/assets/holiday_themes/world_frog_day/steering_wheel/wheel.png diff --git a/frogpilot/assets/model_manager.py b/starpilot/assets/model_manager.py similarity index 98% rename from frogpilot/assets/model_manager.py rename to starpilot/assets/model_manager.py index 54274701..f41febbc 100644 --- a/frogpilot/assets/model_manager.py +++ b/starpilot/assets/model_manager.py @@ -5,7 +5,7 @@ import urllib.request from pathlib import Path -from openpilot.frogpilot.assets.download_functions import ( +from openpilot.starpilot.assets.download_functions import ( GITLAB_URL, download_file, get_repository_url, @@ -13,8 +13,8 @@ from openpilot.frogpilot.assets.download_functions import ( handle_request_error, verify_download, ) -from openpilot.frogpilot.common.frogpilot_utilities import delete_file -from openpilot.frogpilot.common.frogpilot_variables import MODELS_PATH +from openpilot.starpilot.common.starpilot_utilities import delete_file +from openpilot.starpilot.common.starpilot_variables import MODELS_PATH MANIFEST_CANDIDATES = ("v21",) TINYGRAD_VERSIONS = {"v8", "v9", "v10", "v11", "v12"} diff --git a/frogpilot/assets/nnff_models/ACURA_RDX_3G.json b/starpilot/assets/nnff_models/ACURA_RDX_3G.json similarity index 100% rename from frogpilot/assets/nnff_models/ACURA_RDX_3G.json rename to starpilot/assets/nnff_models/ACURA_RDX_3G.json diff --git a/frogpilot/assets/nnff_models/AUDI_A3_MK3.json b/starpilot/assets/nnff_models/AUDI_A3_MK3.json similarity index 100% rename from frogpilot/assets/nnff_models/AUDI_A3_MK3.json rename to starpilot/assets/nnff_models/AUDI_A3_MK3.json diff --git a/frogpilot/assets/nnff_models/AUDI_Q3_MK2.json b/starpilot/assets/nnff_models/AUDI_Q3_MK2.json similarity index 100% rename from frogpilot/assets/nnff_models/AUDI_Q3_MK2.json rename to starpilot/assets/nnff_models/AUDI_Q3_MK2.json diff --git a/frogpilot/assets/nnff_models/BUICK_LACROSSE.json b/starpilot/assets/nnff_models/BUICK_LACROSSE.json similarity index 100% rename from frogpilot/assets/nnff_models/BUICK_LACROSSE.json rename to starpilot/assets/nnff_models/BUICK_LACROSSE.json diff --git a/frogpilot/assets/nnff_models/CHEVROLET_BOLT_EUV.json b/starpilot/assets/nnff_models/CHEVROLET_BOLT_EUV.json similarity index 100% rename from frogpilot/assets/nnff_models/CHEVROLET_BOLT_EUV.json rename to starpilot/assets/nnff_models/CHEVROLET_BOLT_EUV.json diff --git a/frogpilot/assets/nnff_models/CHEVROLET_EQUINOX.json b/starpilot/assets/nnff_models/CHEVROLET_EQUINOX.json similarity index 100% rename from frogpilot/assets/nnff_models/CHEVROLET_EQUINOX.json rename to starpilot/assets/nnff_models/CHEVROLET_EQUINOX.json diff --git a/frogpilot/assets/nnff_models/CHEVROLET_EQUINOX_CC.json b/starpilot/assets/nnff_models/CHEVROLET_EQUINOX_CC.json similarity index 100% rename from frogpilot/assets/nnff_models/CHEVROLET_EQUINOX_CC.json rename to starpilot/assets/nnff_models/CHEVROLET_EQUINOX_CC.json diff --git a/frogpilot/assets/nnff_models/CHEVROLET_SILVERADO.json b/starpilot/assets/nnff_models/CHEVROLET_SILVERADO.json similarity index 100% rename from frogpilot/assets/nnff_models/CHEVROLET_SILVERADO.json rename to starpilot/assets/nnff_models/CHEVROLET_SILVERADO.json diff --git a/frogpilot/assets/nnff_models/CHEVROLET_SUBURBAN.json b/starpilot/assets/nnff_models/CHEVROLET_SUBURBAN.json similarity index 100% rename from frogpilot/assets/nnff_models/CHEVROLET_SUBURBAN.json rename to starpilot/assets/nnff_models/CHEVROLET_SUBURBAN.json diff --git a/frogpilot/assets/nnff_models/CHEVROLET_SUBURBAN_CC.json b/starpilot/assets/nnff_models/CHEVROLET_SUBURBAN_CC.json similarity index 100% rename from frogpilot/assets/nnff_models/CHEVROLET_SUBURBAN_CC.json rename to starpilot/assets/nnff_models/CHEVROLET_SUBURBAN_CC.json diff --git a/frogpilot/assets/nnff_models/CHEVROLET_TRAILBLAZER.json b/starpilot/assets/nnff_models/CHEVROLET_TRAILBLAZER.json similarity index 100% rename from frogpilot/assets/nnff_models/CHEVROLET_TRAILBLAZER.json rename to starpilot/assets/nnff_models/CHEVROLET_TRAILBLAZER.json diff --git a/frogpilot/assets/nnff_models/CHEVROLET_VOLT.json b/starpilot/assets/nnff_models/CHEVROLET_VOLT.json similarity index 100% rename from frogpilot/assets/nnff_models/CHEVROLET_VOLT.json rename to starpilot/assets/nnff_models/CHEVROLET_VOLT.json diff --git a/frogpilot/assets/nnff_models/CHRYSLER_PACIFICA_2017_HYBRID.json b/starpilot/assets/nnff_models/CHRYSLER_PACIFICA_2017_HYBRID.json similarity index 100% rename from frogpilot/assets/nnff_models/CHRYSLER_PACIFICA_2017_HYBRID.json rename to starpilot/assets/nnff_models/CHRYSLER_PACIFICA_2017_HYBRID.json diff --git a/frogpilot/assets/nnff_models/CHRYSLER_PACIFICA_2018_HYBRID.json b/starpilot/assets/nnff_models/CHRYSLER_PACIFICA_2018_HYBRID.json similarity index 100% rename from frogpilot/assets/nnff_models/CHRYSLER_PACIFICA_2018_HYBRID.json rename to starpilot/assets/nnff_models/CHRYSLER_PACIFICA_2018_HYBRID.json diff --git a/frogpilot/assets/nnff_models/CHRYSLER_PACIFICA_2019_HYBRID.json b/starpilot/assets/nnff_models/CHRYSLER_PACIFICA_2019_HYBRID.json similarity index 100% rename from frogpilot/assets/nnff_models/CHRYSLER_PACIFICA_2019_HYBRID.json rename to starpilot/assets/nnff_models/CHRYSLER_PACIFICA_2019_HYBRID.json diff --git a/frogpilot/assets/nnff_models/CHRYSLER_PACIFICA_2020.json b/starpilot/assets/nnff_models/CHRYSLER_PACIFICA_2020.json similarity index 100% rename from frogpilot/assets/nnff_models/CHRYSLER_PACIFICA_2020.json rename to starpilot/assets/nnff_models/CHRYSLER_PACIFICA_2020.json diff --git a/frogpilot/assets/nnff_models/GENESIS_G70.json b/starpilot/assets/nnff_models/GENESIS_G70.json similarity index 100% rename from frogpilot/assets/nnff_models/GENESIS_G70.json rename to starpilot/assets/nnff_models/GENESIS_G70.json diff --git a/frogpilot/assets/nnff_models/GENESIS_GV60_EV_1ST_GEN.json b/starpilot/assets/nnff_models/GENESIS_GV60_EV_1ST_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/GENESIS_GV60_EV_1ST_GEN.json rename to starpilot/assets/nnff_models/GENESIS_GV60_EV_1ST_GEN.json diff --git a/frogpilot/assets/nnff_models/GENESIS_GV70_1ST_GEN.json b/starpilot/assets/nnff_models/GENESIS_GV70_1ST_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/GENESIS_GV70_1ST_GEN.json rename to starpilot/assets/nnff_models/GENESIS_GV70_1ST_GEN.json diff --git a/frogpilot/assets/nnff_models/GMC_ACADIA.json b/starpilot/assets/nnff_models/GMC_ACADIA.json similarity index 100% rename from frogpilot/assets/nnff_models/GMC_ACADIA.json rename to starpilot/assets/nnff_models/GMC_ACADIA.json diff --git a/frogpilot/assets/nnff_models/HONDA_ACCORD.json b/starpilot/assets/nnff_models/HONDA_ACCORD.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_ACCORD.json rename to starpilot/assets/nnff_models/HONDA_ACCORD.json diff --git a/frogpilot/assets/nnff_models/HONDA_CIVIC.json b/starpilot/assets/nnff_models/HONDA_CIVIC.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_CIVIC.json rename to starpilot/assets/nnff_models/HONDA_CIVIC.json diff --git a/frogpilot/assets/nnff_models/HONDA_CIVIC_2022.json b/starpilot/assets/nnff_models/HONDA_CIVIC_2022.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_CIVIC_2022.json rename to starpilot/assets/nnff_models/HONDA_CIVIC_2022.json diff --git a/frogpilot/assets/nnff_models/HONDA_CIVIC_BOSCH.json b/starpilot/assets/nnff_models/HONDA_CIVIC_BOSCH.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_CIVIC_BOSCH.json rename to starpilot/assets/nnff_models/HONDA_CIVIC_BOSCH.json diff --git a/frogpilot/assets/nnff_models/HONDA_CLARITY.json b/starpilot/assets/nnff_models/HONDA_CLARITY.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_CLARITY.json rename to starpilot/assets/nnff_models/HONDA_CLARITY.json diff --git a/frogpilot/assets/nnff_models/HONDA_CRV_5G.json b/starpilot/assets/nnff_models/HONDA_CRV_5G.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_CRV_5G.json rename to starpilot/assets/nnff_models/HONDA_CRV_5G.json diff --git a/frogpilot/assets/nnff_models/HONDA_CRV_HYBRID.json b/starpilot/assets/nnff_models/HONDA_CRV_HYBRID.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_CRV_HYBRID.json rename to starpilot/assets/nnff_models/HONDA_CRV_HYBRID.json diff --git a/frogpilot/assets/nnff_models/HONDA_HRV.json b/starpilot/assets/nnff_models/HONDA_HRV.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_HRV.json rename to starpilot/assets/nnff_models/HONDA_HRV.json diff --git a/frogpilot/assets/nnff_models/HONDA_INSIGHT.json b/starpilot/assets/nnff_models/HONDA_INSIGHT.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_INSIGHT.json rename to starpilot/assets/nnff_models/HONDA_INSIGHT.json diff --git a/frogpilot/assets/nnff_models/HONDA_ODYSSEY.json b/starpilot/assets/nnff_models/HONDA_ODYSSEY.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_ODYSSEY.json rename to starpilot/assets/nnff_models/HONDA_ODYSSEY.json diff --git a/frogpilot/assets/nnff_models/HONDA_PILOT.json b/starpilot/assets/nnff_models/HONDA_PILOT.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_PILOT.json rename to starpilot/assets/nnff_models/HONDA_PILOT.json diff --git a/frogpilot/assets/nnff_models/HONDA_RIDGELINE.json b/starpilot/assets/nnff_models/HONDA_RIDGELINE.json similarity index 100% rename from frogpilot/assets/nnff_models/HONDA_RIDGELINE.json rename to starpilot/assets/nnff_models/HONDA_RIDGELINE.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_ELANTRA_2021.json b/starpilot/assets/nnff_models/HYUNDAI_ELANTRA_2021.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_ELANTRA_2021.json rename to starpilot/assets/nnff_models/HYUNDAI_ELANTRA_2021.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_ELANTRA_HEV_2021.json b/starpilot/assets/nnff_models/HYUNDAI_ELANTRA_HEV_2021.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_ELANTRA_HEV_2021.json rename to starpilot/assets/nnff_models/HYUNDAI_ELANTRA_HEV_2021.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_GENESIS.json b/starpilot/assets/nnff_models/HYUNDAI_GENESIS.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_GENESIS.json rename to starpilot/assets/nnff_models/HYUNDAI_GENESIS.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_IONIQ_5.json b/starpilot/assets/nnff_models/HYUNDAI_IONIQ_5.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_IONIQ_5.json rename to starpilot/assets/nnff_models/HYUNDAI_IONIQ_5.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_IONIQ_EV_LTD.json b/starpilot/assets/nnff_models/HYUNDAI_IONIQ_EV_LTD.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_IONIQ_EV_LTD.json rename to starpilot/assets/nnff_models/HYUNDAI_IONIQ_EV_LTD.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_IONIQ_PHEV.json b/starpilot/assets/nnff_models/HYUNDAI_IONIQ_PHEV.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_IONIQ_PHEV.json rename to starpilot/assets/nnff_models/HYUNDAI_IONIQ_PHEV.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_KONA_EV.json b/starpilot/assets/nnff_models/HYUNDAI_KONA_EV.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_KONA_EV.json rename to starpilot/assets/nnff_models/HYUNDAI_KONA_EV.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_KONA_EV_2022.json b/starpilot/assets/nnff_models/HYUNDAI_KONA_EV_2022.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_KONA_EV_2022.json rename to starpilot/assets/nnff_models/HYUNDAI_KONA_EV_2022.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_KONA_HEV.json b/starpilot/assets/nnff_models/HYUNDAI_KONA_HEV.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_KONA_HEV.json rename to starpilot/assets/nnff_models/HYUNDAI_KONA_HEV.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_PALISADE.json b/starpilot/assets/nnff_models/HYUNDAI_PALISADE.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_PALISADE.json rename to starpilot/assets/nnff_models/HYUNDAI_PALISADE.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_SANTA_FE.json b/starpilot/assets/nnff_models/HYUNDAI_SANTA_FE.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_SANTA_FE.json rename to starpilot/assets/nnff_models/HYUNDAI_SANTA_FE.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_SANTA_FE_2022.json b/starpilot/assets/nnff_models/HYUNDAI_SANTA_FE_2022.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_SANTA_FE_2022.json rename to starpilot/assets/nnff_models/HYUNDAI_SANTA_FE_2022.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_SANTA_FE_HEV_2022.json b/starpilot/assets/nnff_models/HYUNDAI_SANTA_FE_HEV_2022.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_SANTA_FE_HEV_2022.json rename to starpilot/assets/nnff_models/HYUNDAI_SANTA_FE_HEV_2022.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_SANTA_FE_PHEV_2022.json b/starpilot/assets/nnff_models/HYUNDAI_SANTA_FE_PHEV_2022.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_SANTA_FE_PHEV_2022.json rename to starpilot/assets/nnff_models/HYUNDAI_SANTA_FE_PHEV_2022.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_SONATA.json b/starpilot/assets/nnff_models/HYUNDAI_SONATA.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_SONATA.json rename to starpilot/assets/nnff_models/HYUNDAI_SONATA.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_SONATA_HYBRID.json b/starpilot/assets/nnff_models/HYUNDAI_SONATA_HYBRID.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_SONATA_HYBRID.json rename to starpilot/assets/nnff_models/HYUNDAI_SONATA_HYBRID.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_SONATA_LF.json b/starpilot/assets/nnff_models/HYUNDAI_SONATA_LF.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_SONATA_LF.json rename to starpilot/assets/nnff_models/HYUNDAI_SONATA_LF.json diff --git a/frogpilot/assets/nnff_models/HYUNDAI_TUCSON_4TH_GEN.json b/starpilot/assets/nnff_models/HYUNDAI_TUCSON_4TH_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/HYUNDAI_TUCSON_4TH_GEN.json rename to starpilot/assets/nnff_models/HYUNDAI_TUCSON_4TH_GEN.json diff --git a/frogpilot/assets/nnff_models/JEEP_GRAND_CHEROKEE.json b/starpilot/assets/nnff_models/JEEP_GRAND_CHEROKEE.json similarity index 100% rename from frogpilot/assets/nnff_models/JEEP_GRAND_CHEROKEE.json rename to starpilot/assets/nnff_models/JEEP_GRAND_CHEROKEE.json diff --git a/frogpilot/assets/nnff_models/JEEP_GRAND_CHEROKEE_2019.json b/starpilot/assets/nnff_models/JEEP_GRAND_CHEROKEE_2019.json similarity index 100% rename from frogpilot/assets/nnff_models/JEEP_GRAND_CHEROKEE_2019.json rename to starpilot/assets/nnff_models/JEEP_GRAND_CHEROKEE_2019.json diff --git a/frogpilot/assets/nnff_models/KIA_CEED.json b/starpilot/assets/nnff_models/KIA_CEED.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_CEED.json rename to starpilot/assets/nnff_models/KIA_CEED.json diff --git a/frogpilot/assets/nnff_models/KIA_EV6.json b/starpilot/assets/nnff_models/KIA_EV6.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_EV6.json rename to starpilot/assets/nnff_models/KIA_EV6.json diff --git a/frogpilot/assets/nnff_models/KIA_K5_2021.json b/starpilot/assets/nnff_models/KIA_K5_2021.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_K5_2021.json rename to starpilot/assets/nnff_models/KIA_K5_2021.json diff --git a/frogpilot/assets/nnff_models/KIA_NIRO_EV.json b/starpilot/assets/nnff_models/KIA_NIRO_EV.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_NIRO_EV.json rename to starpilot/assets/nnff_models/KIA_NIRO_EV.json diff --git a/frogpilot/assets/nnff_models/KIA_NIRO_HEV_2021.json b/starpilot/assets/nnff_models/KIA_NIRO_HEV_2021.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_NIRO_HEV_2021.json rename to starpilot/assets/nnff_models/KIA_NIRO_HEV_2021.json diff --git a/frogpilot/assets/nnff_models/KIA_NIRO_HEV_2ND_GEN.json b/starpilot/assets/nnff_models/KIA_NIRO_HEV_2ND_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_NIRO_HEV_2ND_GEN.json rename to starpilot/assets/nnff_models/KIA_NIRO_HEV_2ND_GEN.json diff --git a/frogpilot/assets/nnff_models/KIA_NIRO_PHEV_2022.json b/starpilot/assets/nnff_models/KIA_NIRO_PHEV_2022.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_NIRO_PHEV_2022.json rename to starpilot/assets/nnff_models/KIA_NIRO_PHEV_2022.json diff --git a/frogpilot/assets/nnff_models/KIA_OPTIMA_G4_FL.json b/starpilot/assets/nnff_models/KIA_OPTIMA_G4_FL.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_OPTIMA_G4_FL.json rename to starpilot/assets/nnff_models/KIA_OPTIMA_G4_FL.json diff --git a/frogpilot/assets/nnff_models/KIA_SELTOS.json b/starpilot/assets/nnff_models/KIA_SELTOS.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_SELTOS.json rename to starpilot/assets/nnff_models/KIA_SELTOS.json diff --git a/frogpilot/assets/nnff_models/KIA_SORENTO.json b/starpilot/assets/nnff_models/KIA_SORENTO.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_SORENTO.json rename to starpilot/assets/nnff_models/KIA_SORENTO.json diff --git a/frogpilot/assets/nnff_models/KIA_SORENTO_4TH_GEN.json b/starpilot/assets/nnff_models/KIA_SORENTO_4TH_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_SORENTO_4TH_GEN.json rename to starpilot/assets/nnff_models/KIA_SORENTO_4TH_GEN.json diff --git a/frogpilot/assets/nnff_models/KIA_SORENTO_HEV_4TH_GEN.json b/starpilot/assets/nnff_models/KIA_SORENTO_HEV_4TH_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_SORENTO_HEV_4TH_GEN.json rename to starpilot/assets/nnff_models/KIA_SORENTO_HEV_4TH_GEN.json diff --git a/frogpilot/assets/nnff_models/KIA_SPORTAGE_5TH_GEN.json b/starpilot/assets/nnff_models/KIA_SPORTAGE_5TH_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_SPORTAGE_5TH_GEN.json rename to starpilot/assets/nnff_models/KIA_SPORTAGE_5TH_GEN.json diff --git a/frogpilot/assets/nnff_models/KIA_STINGER.json b/starpilot/assets/nnff_models/KIA_STINGER.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_STINGER.json rename to starpilot/assets/nnff_models/KIA_STINGER.json diff --git a/frogpilot/assets/nnff_models/KIA_STINGER_2022.json b/starpilot/assets/nnff_models/KIA_STINGER_2022.json similarity index 100% rename from frogpilot/assets/nnff_models/KIA_STINGER_2022.json rename to starpilot/assets/nnff_models/KIA_STINGER_2022.json diff --git a/frogpilot/assets/nnff_models/LEXUS_ES_TSS2.json b/starpilot/assets/nnff_models/LEXUS_ES_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/LEXUS_ES_TSS2.json rename to starpilot/assets/nnff_models/LEXUS_ES_TSS2.json diff --git a/frogpilot/assets/nnff_models/LEXUS_IS.json b/starpilot/assets/nnff_models/LEXUS_IS.json similarity index 100% rename from frogpilot/assets/nnff_models/LEXUS_IS.json rename to starpilot/assets/nnff_models/LEXUS_IS.json diff --git a/frogpilot/assets/nnff_models/LEXUS_NX.json b/starpilot/assets/nnff_models/LEXUS_NX.json similarity index 100% rename from frogpilot/assets/nnff_models/LEXUS_NX.json rename to starpilot/assets/nnff_models/LEXUS_NX.json diff --git a/frogpilot/assets/nnff_models/LEXUS_NX_TSS2.json b/starpilot/assets/nnff_models/LEXUS_NX_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/LEXUS_NX_TSS2.json rename to starpilot/assets/nnff_models/LEXUS_NX_TSS2.json diff --git a/frogpilot/assets/nnff_models/LEXUS_RX.json b/starpilot/assets/nnff_models/LEXUS_RX.json similarity index 100% rename from frogpilot/assets/nnff_models/LEXUS_RX.json rename to starpilot/assets/nnff_models/LEXUS_RX.json diff --git a/frogpilot/assets/nnff_models/LEXUS_RX_TSS2.json b/starpilot/assets/nnff_models/LEXUS_RX_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/LEXUS_RX_TSS2.json rename to starpilot/assets/nnff_models/LEXUS_RX_TSS2.json diff --git a/frogpilot/assets/nnff_models/MAZDA_3.json b/starpilot/assets/nnff_models/MAZDA_3.json similarity index 100% rename from frogpilot/assets/nnff_models/MAZDA_3.json rename to starpilot/assets/nnff_models/MAZDA_3.json diff --git a/frogpilot/assets/nnff_models/MAZDA_CX5_2022.json b/starpilot/assets/nnff_models/MAZDA_CX5_2022.json similarity index 100% rename from frogpilot/assets/nnff_models/MAZDA_CX5_2022.json rename to starpilot/assets/nnff_models/MAZDA_CX5_2022.json diff --git a/frogpilot/assets/nnff_models/MAZDA_CX9.json b/starpilot/assets/nnff_models/MAZDA_CX9.json similarity index 100% rename from frogpilot/assets/nnff_models/MAZDA_CX9.json rename to starpilot/assets/nnff_models/MAZDA_CX9.json diff --git a/frogpilot/assets/nnff_models/MAZDA_CX9_2021.json b/starpilot/assets/nnff_models/MAZDA_CX9_2021.json similarity index 100% rename from frogpilot/assets/nnff_models/MAZDA_CX9_2021.json rename to starpilot/assets/nnff_models/MAZDA_CX9_2021.json diff --git a/frogpilot/assets/nnff_models/RAM_1500_5TH_GEN.json b/starpilot/assets/nnff_models/RAM_1500_5TH_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/RAM_1500_5TH_GEN.json rename to starpilot/assets/nnff_models/RAM_1500_5TH_GEN.json diff --git a/frogpilot/assets/nnff_models/RAM_HD_5TH_GEN.json b/starpilot/assets/nnff_models/RAM_HD_5TH_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/RAM_HD_5TH_GEN.json rename to starpilot/assets/nnff_models/RAM_HD_5TH_GEN.json diff --git a/frogpilot/assets/nnff_models/SKODA_KAROQ_MK1.json b/starpilot/assets/nnff_models/SKODA_KAROQ_MK1.json similarity index 100% rename from frogpilot/assets/nnff_models/SKODA_KAROQ_MK1.json rename to starpilot/assets/nnff_models/SKODA_KAROQ_MK1.json diff --git a/frogpilot/assets/nnff_models/SKODA_KODIAQ_MK1.json b/starpilot/assets/nnff_models/SKODA_KODIAQ_MK1.json similarity index 100% rename from frogpilot/assets/nnff_models/SKODA_KODIAQ_MK1.json rename to starpilot/assets/nnff_models/SKODA_KODIAQ_MK1.json diff --git a/frogpilot/assets/nnff_models/SKODA_OCTAVIA_MK3.json b/starpilot/assets/nnff_models/SKODA_OCTAVIA_MK3.json similarity index 100% rename from frogpilot/assets/nnff_models/SKODA_OCTAVIA_MK3.json rename to starpilot/assets/nnff_models/SKODA_OCTAVIA_MK3.json diff --git a/frogpilot/assets/nnff_models/SKODA_SUPERB_MK3.json b/starpilot/assets/nnff_models/SKODA_SUPERB_MK3.json similarity index 100% rename from frogpilot/assets/nnff_models/SKODA_SUPERB_MK3.json rename to starpilot/assets/nnff_models/SKODA_SUPERB_MK3.json diff --git a/frogpilot/assets/nnff_models/SUBARU_ASCENT.json b/starpilot/assets/nnff_models/SUBARU_ASCENT.json similarity index 100% rename from frogpilot/assets/nnff_models/SUBARU_ASCENT.json rename to starpilot/assets/nnff_models/SUBARU_ASCENT.json diff --git a/frogpilot/assets/nnff_models/SUBARU_FORESTER.json b/starpilot/assets/nnff_models/SUBARU_FORESTER.json similarity index 100% rename from frogpilot/assets/nnff_models/SUBARU_FORESTER.json rename to starpilot/assets/nnff_models/SUBARU_FORESTER.json diff --git a/frogpilot/assets/nnff_models/SUBARU_IMPREZA.json b/starpilot/assets/nnff_models/SUBARU_IMPREZA.json similarity index 100% rename from frogpilot/assets/nnff_models/SUBARU_IMPREZA.json rename to starpilot/assets/nnff_models/SUBARU_IMPREZA.json diff --git a/frogpilot/assets/nnff_models/SUBARU_IMPREZA_2020.json b/starpilot/assets/nnff_models/SUBARU_IMPREZA_2020.json similarity index 100% rename from frogpilot/assets/nnff_models/SUBARU_IMPREZA_2020.json rename to starpilot/assets/nnff_models/SUBARU_IMPREZA_2020.json diff --git a/frogpilot/assets/nnff_models/SUBARU_LEGACY.json b/starpilot/assets/nnff_models/SUBARU_LEGACY.json similarity index 100% rename from frogpilot/assets/nnff_models/SUBARU_LEGACY.json rename to starpilot/assets/nnff_models/SUBARU_LEGACY.json diff --git a/frogpilot/assets/nnff_models/SUBARU_LEGACY_PREGLOBAL.json b/starpilot/assets/nnff_models/SUBARU_LEGACY_PREGLOBAL.json similarity index 100% rename from frogpilot/assets/nnff_models/SUBARU_LEGACY_PREGLOBAL.json rename to starpilot/assets/nnff_models/SUBARU_LEGACY_PREGLOBAL.json diff --git a/frogpilot/assets/nnff_models/SUBARU_OUTBACK.json b/starpilot/assets/nnff_models/SUBARU_OUTBACK.json similarity index 100% rename from frogpilot/assets/nnff_models/SUBARU_OUTBACK.json rename to starpilot/assets/nnff_models/SUBARU_OUTBACK.json diff --git a/frogpilot/assets/nnff_models/SUBARU_OUTBACK_PREGLOBAL.json b/starpilot/assets/nnff_models/SUBARU_OUTBACK_PREGLOBAL.json similarity index 100% rename from frogpilot/assets/nnff_models/SUBARU_OUTBACK_PREGLOBAL.json rename to starpilot/assets/nnff_models/SUBARU_OUTBACK_PREGLOBAL.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_AVALON.json b/starpilot/assets/nnff_models/TOYOTA_AVALON.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_AVALON.json rename to starpilot/assets/nnff_models/TOYOTA_AVALON.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_AVALON_2019.json b/starpilot/assets/nnff_models/TOYOTA_AVALON_2019.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_AVALON_2019.json rename to starpilot/assets/nnff_models/TOYOTA_AVALON_2019.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_AVALON_TSS2.json b/starpilot/assets/nnff_models/TOYOTA_AVALON_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_AVALON_TSS2.json rename to starpilot/assets/nnff_models/TOYOTA_AVALON_TSS2.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_CAMRY.json b/starpilot/assets/nnff_models/TOYOTA_CAMRY.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_CAMRY.json rename to starpilot/assets/nnff_models/TOYOTA_CAMRY.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_CAMRY_TSS2.json b/starpilot/assets/nnff_models/TOYOTA_CAMRY_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_CAMRY_TSS2.json rename to starpilot/assets/nnff_models/TOYOTA_CAMRY_TSS2.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_CHR.json b/starpilot/assets/nnff_models/TOYOTA_CHR.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_CHR.json rename to starpilot/assets/nnff_models/TOYOTA_CHR.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_CHR_TSS2.json b/starpilot/assets/nnff_models/TOYOTA_CHR_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_CHR_TSS2.json rename to starpilot/assets/nnff_models/TOYOTA_CHR_TSS2.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_COROLLA.json b/starpilot/assets/nnff_models/TOYOTA_COROLLA.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_COROLLA.json rename to starpilot/assets/nnff_models/TOYOTA_COROLLA.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_COROLLA_TSS2.json b/starpilot/assets/nnff_models/TOYOTA_COROLLA_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_COROLLA_TSS2.json rename to starpilot/assets/nnff_models/TOYOTA_COROLLA_TSS2.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_HIGHLANDER.json b/starpilot/assets/nnff_models/TOYOTA_HIGHLANDER.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_HIGHLANDER.json rename to starpilot/assets/nnff_models/TOYOTA_HIGHLANDER.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_HIGHLANDER_TSS2.json b/starpilot/assets/nnff_models/TOYOTA_HIGHLANDER_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_HIGHLANDER_TSS2.json rename to starpilot/assets/nnff_models/TOYOTA_HIGHLANDER_TSS2.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_MIRAI.json b/starpilot/assets/nnff_models/TOYOTA_MIRAI.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_MIRAI.json rename to starpilot/assets/nnff_models/TOYOTA_MIRAI.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_PRIUS.json b/starpilot/assets/nnff_models/TOYOTA_PRIUS.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_PRIUS.json rename to starpilot/assets/nnff_models/TOYOTA_PRIUS.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_PRIUS_2017_b'8965B47070x00x00x00x00x00x00'.json b/starpilot/assets/nnff_models/TOYOTA_PRIUS_2017_b'8965B47070x00x00x00x00x00x00'.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_PRIUS_2017_b'8965B47070x00x00x00x00x00x00'.json rename to starpilot/assets/nnff_models/TOYOTA_PRIUS_2017_b'8965B47070x00x00x00x00x00x00'.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_PRIUS_TSS2.json b/starpilot/assets/nnff_models/TOYOTA_PRIUS_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_PRIUS_TSS2.json rename to starpilot/assets/nnff_models/TOYOTA_PRIUS_TSS2.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_PRIUS_V.json b/starpilot/assets/nnff_models/TOYOTA_PRIUS_V.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_PRIUS_V.json rename to starpilot/assets/nnff_models/TOYOTA_PRIUS_V.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_RAV4.json b/starpilot/assets/nnff_models/TOYOTA_RAV4.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_RAV4.json rename to starpilot/assets/nnff_models/TOYOTA_RAV4.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_RAV4H.json b/starpilot/assets/nnff_models/TOYOTA_RAV4H.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_RAV4H.json rename to starpilot/assets/nnff_models/TOYOTA_RAV4H.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_RAV4_PRIME.json b/starpilot/assets/nnff_models/TOYOTA_RAV4_PRIME.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_RAV4_PRIME.json rename to starpilot/assets/nnff_models/TOYOTA_RAV4_PRIME.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_RAV4_TSS2.json b/starpilot/assets/nnff_models/TOYOTA_RAV4_TSS2.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_RAV4_TSS2.json rename to starpilot/assets/nnff_models/TOYOTA_RAV4_TSS2.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_RAV4_TSS2_2022.json b/starpilot/assets/nnff_models/TOYOTA_RAV4_TSS2_2022.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_RAV4_TSS2_2022.json rename to starpilot/assets/nnff_models/TOYOTA_RAV4_TSS2_2022.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_SIENNA.json b/starpilot/assets/nnff_models/TOYOTA_SIENNA.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_SIENNA.json rename to starpilot/assets/nnff_models/TOYOTA_SIENNA.json diff --git a/frogpilot/assets/nnff_models/TOYOTA_SIENNA_4TH_GEN.json b/starpilot/assets/nnff_models/TOYOTA_SIENNA_4TH_GEN.json similarity index 100% rename from frogpilot/assets/nnff_models/TOYOTA_SIENNA_4TH_GEN.json rename to starpilot/assets/nnff_models/TOYOTA_SIENNA_4TH_GEN.json diff --git a/frogpilot/assets/nnff_models/VOLKSWAGEN_ARTEON_MK1.json b/starpilot/assets/nnff_models/VOLKSWAGEN_ARTEON_MK1.json similarity index 100% rename from frogpilot/assets/nnff_models/VOLKSWAGEN_ARTEON_MK1.json rename to starpilot/assets/nnff_models/VOLKSWAGEN_ARTEON_MK1.json diff --git a/frogpilot/assets/nnff_models/VOLKSWAGEN_ATLAS_MK1.json b/starpilot/assets/nnff_models/VOLKSWAGEN_ATLAS_MK1.json similarity index 100% rename from frogpilot/assets/nnff_models/VOLKSWAGEN_ATLAS_MK1.json rename to starpilot/assets/nnff_models/VOLKSWAGEN_ATLAS_MK1.json diff --git a/frogpilot/assets/nnff_models/VOLKSWAGEN_GOLF_MK7.json b/starpilot/assets/nnff_models/VOLKSWAGEN_GOLF_MK7.json similarity index 100% rename from frogpilot/assets/nnff_models/VOLKSWAGEN_GOLF_MK7.json rename to starpilot/assets/nnff_models/VOLKSWAGEN_GOLF_MK7.json diff --git a/frogpilot/assets/nnff_models/VOLKSWAGEN_JETTA_MK7.json b/starpilot/assets/nnff_models/VOLKSWAGEN_JETTA_MK7.json similarity index 100% rename from frogpilot/assets/nnff_models/VOLKSWAGEN_JETTA_MK7.json rename to starpilot/assets/nnff_models/VOLKSWAGEN_JETTA_MK7.json diff --git a/frogpilot/assets/nnff_models/VOLKSWAGEN_PASSAT_MK8.json b/starpilot/assets/nnff_models/VOLKSWAGEN_PASSAT_MK8.json similarity index 100% rename from frogpilot/assets/nnff_models/VOLKSWAGEN_PASSAT_MK8.json rename to starpilot/assets/nnff_models/VOLKSWAGEN_PASSAT_MK8.json diff --git a/frogpilot/assets/nnff_models/VOLKSWAGEN_PASSAT_NMS.json b/starpilot/assets/nnff_models/VOLKSWAGEN_PASSAT_NMS.json similarity index 100% rename from frogpilot/assets/nnff_models/VOLKSWAGEN_PASSAT_NMS.json rename to starpilot/assets/nnff_models/VOLKSWAGEN_PASSAT_NMS.json diff --git a/frogpilot/assets/nnff_models/VOLKSWAGEN_TIGUAN_MK2.json b/starpilot/assets/nnff_models/VOLKSWAGEN_TIGUAN_MK2.json similarity index 100% rename from frogpilot/assets/nnff_models/VOLKSWAGEN_TIGUAN_MK2.json rename to starpilot/assets/nnff_models/VOLKSWAGEN_TIGUAN_MK2.json diff --git a/frogpilot/assets/other_images/brake_pedal.png b/starpilot/assets/other_images/brake_pedal.png similarity index 100% rename from frogpilot/assets/other_images/brake_pedal.png rename to starpilot/assets/other_images/brake_pedal.png diff --git a/frogpilot/assets/other_images/chill_mode_icon.gif b/starpilot/assets/other_images/chill_mode_icon.gif similarity index 100% rename from frogpilot/assets/other_images/chill_mode_icon.gif rename to starpilot/assets/other_images/chill_mode_icon.gif diff --git a/frogpilot/assets/other_images/curve_icon.gif b/starpilot/assets/other_images/curve_icon.gif similarity index 100% rename from frogpilot/assets/other_images/curve_icon.gif rename to starpilot/assets/other_images/curve_icon.gif diff --git a/frogpilot/assets/other_images/curve_speed.png b/starpilot/assets/other_images/curve_speed.png similarity index 100% rename from frogpilot/assets/other_images/curve_speed.png rename to starpilot/assets/other_images/curve_speed.png diff --git a/frogpilot/assets/other_images/dashboard_icon.png b/starpilot/assets/other_images/dashboard_icon.png similarity index 100% rename from frogpilot/assets/other_images/dashboard_icon.png rename to starpilot/assets/other_images/dashboard_icon.png diff --git a/frogpilot/assets/other_images/experimental_mode_icon.gif b/starpilot/assets/other_images/experimental_mode_icon.gif similarity index 100% rename from frogpilot/assets/other_images/experimental_mode_icon.gif rename to starpilot/assets/other_images/experimental_mode_icon.gif diff --git a/frogpilot/assets/other_images/gas_pedal.png b/starpilot/assets/other_images/gas_pedal.png similarity index 100% rename from frogpilot/assets/other_images/gas_pedal.png rename to starpilot/assets/other_images/gas_pedal.png diff --git a/frogpilot/assets/other_images/lead_icon.gif b/starpilot/assets/other_images/lead_icon.gif similarity index 100% rename from frogpilot/assets/other_images/lead_icon.gif rename to starpilot/assets/other_images/lead_icon.gif diff --git a/frogpilot/assets/other_images/light_icon.gif b/starpilot/assets/other_images/light_icon.gif similarity index 100% rename from frogpilot/assets/other_images/light_icon.gif rename to starpilot/assets/other_images/light_icon.gif diff --git a/frogpilot/assets/other_images/mapbox_icon.png b/starpilot/assets/other_images/mapbox_icon.png similarity index 100% rename from frogpilot/assets/other_images/mapbox_icon.png rename to starpilot/assets/other_images/mapbox_icon.png diff --git a/frogpilot/assets/other_images/next_maps_icon.png b/starpilot/assets/other_images/next_maps_icon.png similarity index 100% rename from frogpilot/assets/other_images/next_maps_icon.png rename to starpilot/assets/other_images/next_maps_icon.png diff --git a/frogpilot/assets/other_images/offline_maps_icon.png b/starpilot/assets/other_images/offline_maps_icon.png similarity index 100% rename from frogpilot/assets/other_images/offline_maps_icon.png rename to starpilot/assets/other_images/offline_maps_icon.png diff --git a/frogpilot/assets/other_images/paused_icon.png b/starpilot/assets/other_images/paused_icon.png similarity index 100% rename from frogpilot/assets/other_images/paused_icon.png rename to starpilot/assets/other_images/paused_icon.png diff --git a/frogpilot/assets/other_images/speed_icon.gif b/starpilot/assets/other_images/speed_icon.gif similarity index 100% rename from frogpilot/assets/other_images/speed_icon.gif rename to starpilot/assets/other_images/speed_icon.gif diff --git a/frogpilot/assets/other_images/speed_icon.png b/starpilot/assets/other_images/speed_icon.png similarity index 100% rename from frogpilot/assets/other_images/speed_icon.png rename to starpilot/assets/other_images/speed_icon.png diff --git a/frogpilot/assets/other_images/frogpilot_boot_logo.jpg b/starpilot/assets/other_images/starpilot_boot_logo.jpg similarity index 100% rename from frogpilot/assets/other_images/frogpilot_boot_logo.jpg rename to starpilot/assets/other_images/starpilot_boot_logo.jpg diff --git a/frogpilot/assets/other_images/stock_bg.jpg b/starpilot/assets/other_images/stock_bg.jpg similarity index 100% rename from frogpilot/assets/other_images/stock_bg.jpg rename to starpilot/assets/other_images/stock_bg.jpg diff --git a/frogpilot/assets/other_images/stop_sign.png b/starpilot/assets/other_images/stop_sign.png similarity index 100% rename from frogpilot/assets/other_images/stop_sign.png rename to starpilot/assets/other_images/stop_sign.png diff --git a/frogpilot/assets/other_images/turn_icon.gif b/starpilot/assets/other_images/turn_icon.gif similarity index 100% rename from frogpilot/assets/other_images/turn_icon.gif rename to starpilot/assets/other_images/turn_icon.gif diff --git a/frogpilot/assets/other_images/turn_icon.png b/starpilot/assets/other_images/turn_icon.png similarity index 100% rename from frogpilot/assets/other_images/turn_icon.png rename to starpilot/assets/other_images/turn_icon.png diff --git a/frogpilot/assets/other_images/weather_clear_day.gif b/starpilot/assets/other_images/weather_clear_day.gif similarity index 100% rename from frogpilot/assets/other_images/weather_clear_day.gif rename to starpilot/assets/other_images/weather_clear_day.gif diff --git a/frogpilot/assets/other_images/weather_clear_night.gif b/starpilot/assets/other_images/weather_clear_night.gif similarity index 100% rename from frogpilot/assets/other_images/weather_clear_night.gif rename to starpilot/assets/other_images/weather_clear_night.gif diff --git a/frogpilot/assets/other_images/weather_low_visibility.gif b/starpilot/assets/other_images/weather_low_visibility.gif similarity index 100% rename from frogpilot/assets/other_images/weather_low_visibility.gif rename to starpilot/assets/other_images/weather_low_visibility.gif diff --git a/frogpilot/assets/other_images/weather_rain.gif b/starpilot/assets/other_images/weather_rain.gif similarity index 100% rename from frogpilot/assets/other_images/weather_rain.gif rename to starpilot/assets/other_images/weather_rain.gif diff --git a/frogpilot/assets/other_images/weather_snow.gif b/starpilot/assets/other_images/weather_snow.gif similarity index 100% rename from frogpilot/assets/other_images/weather_snow.gif rename to starpilot/assets/other_images/weather_snow.gif diff --git a/frogpilot/assets/random_events/icons/button_home.gif b/starpilot/assets/random_events/icons/button_home.gif similarity index 100% rename from frogpilot/assets/random_events/icons/button_home.gif rename to starpilot/assets/random_events/icons/button_home.gif diff --git a/frogpilot/assets/random_events/icons/ferg.png b/starpilot/assets/random_events/icons/ferg.png similarity index 100% rename from frogpilot/assets/random_events/icons/ferg.png rename to starpilot/assets/random_events/icons/ferg.png diff --git a/frogpilot/assets/random_events/sounds/angry.wav b/starpilot/assets/random_events/sounds/angry.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/angry.wav rename to starpilot/assets/random_events/sounds/angry.wav diff --git a/frogpilot/assets/random_events/sounds/continued.wav b/starpilot/assets/random_events/sounds/continued.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/continued.wav rename to starpilot/assets/random_events/sounds/continued.wav diff --git a/frogpilot/assets/random_events/sounds/dejaVu.wav b/starpilot/assets/random_events/sounds/dejaVu.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/dejaVu.wav rename to starpilot/assets/random_events/sounds/dejaVu.wav diff --git a/frogpilot/assets/random_events/sounds/doc.wav b/starpilot/assets/random_events/sounds/doc.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/doc.wav rename to starpilot/assets/random_events/sounds/doc.wav diff --git a/frogpilot/assets/random_events/sounds/fart.wav b/starpilot/assets/random_events/sounds/fart.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/fart.wav rename to starpilot/assets/random_events/sounds/fart.wav diff --git a/frogpilot/assets/random_events/sounds/firefox.wav b/starpilot/assets/random_events/sounds/firefox.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/firefox.wav rename to starpilot/assets/random_events/sounds/firefox.wav diff --git a/frogpilot/assets/random_events/sounds/goat.wav b/starpilot/assets/random_events/sounds/goat.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/goat.wav rename to starpilot/assets/random_events/sounds/goat.wav diff --git a/frogpilot/assets/random_events/sounds/hal9000.wav b/starpilot/assets/random_events/sounds/hal9000.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/hal9000.wav rename to starpilot/assets/random_events/sounds/hal9000.wav diff --git a/frogpilot/assets/random_events/sounds/mail.wav b/starpilot/assets/random_events/sounds/mail.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/mail.wav rename to starpilot/assets/random_events/sounds/mail.wav diff --git a/frogpilot/assets/random_events/sounds/nessie.wav b/starpilot/assets/random_events/sounds/nessie.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/nessie.wav rename to starpilot/assets/random_events/sounds/nessie.wav diff --git a/frogpilot/assets/random_events/sounds/noice.wav b/starpilot/assets/random_events/sounds/noice.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/noice.wav rename to starpilot/assets/random_events/sounds/noice.wav diff --git a/frogpilot/assets/random_events/sounds/this_is_fine.wav b/starpilot/assets/random_events/sounds/this_is_fine.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/this_is_fine.wav rename to starpilot/assets/random_events/sounds/this_is_fine.wav diff --git a/frogpilot/assets/random_events/sounds/uwu.wav b/starpilot/assets/random_events/sounds/uwu.wav similarity index 100% rename from frogpilot/assets/random_events/sounds/uwu.wav rename to starpilot/assets/random_events/sounds/uwu.wav diff --git a/frogpilot/assets/random_events/steering_wheels/accel30.gif b/starpilot/assets/random_events/steering_wheels/accel30.gif similarity index 100% rename from frogpilot/assets/random_events/steering_wheels/accel30.gif rename to starpilot/assets/random_events/steering_wheels/accel30.gif diff --git a/frogpilot/assets/random_events/steering_wheels/accel35.gif b/starpilot/assets/random_events/steering_wheels/accel35.gif similarity index 100% rename from frogpilot/assets/random_events/steering_wheels/accel35.gif rename to starpilot/assets/random_events/steering_wheels/accel35.gif diff --git a/frogpilot/assets/random_events/steering_wheels/accel40.gif b/starpilot/assets/random_events/steering_wheels/accel40.gif similarity index 100% rename from frogpilot/assets/random_events/steering_wheels/accel40.gif rename to starpilot/assets/random_events/steering_wheels/accel40.gif diff --git a/frogpilot/assets/random_events/steering_wheels/firefoxSteerSaturated.gif b/starpilot/assets/random_events/steering_wheels/firefoxSteerSaturated.gif similarity index 100% rename from frogpilot/assets/random_events/steering_wheels/firefoxSteerSaturated.gif rename to starpilot/assets/random_events/steering_wheels/firefoxSteerSaturated.gif diff --git a/frogpilot/assets/random_events/steering_wheels/goatSteerSaturated.gif b/starpilot/assets/random_events/steering_wheels/goatSteerSaturated.gif similarity index 100% rename from frogpilot/assets/random_events/steering_wheels/goatSteerSaturated.gif rename to starpilot/assets/random_events/steering_wheels/goatSteerSaturated.gif diff --git a/frogpilot/assets/random_events/steering_wheels/thisIsFineSteerSaturated.gif b/starpilot/assets/random_events/steering_wheels/thisIsFineSteerSaturated.gif similarity index 100% rename from frogpilot/assets/random_events/steering_wheels/thisIsFineSteerSaturated.gif rename to starpilot/assets/random_events/steering_wheels/thisIsFineSteerSaturated.gif diff --git a/frogpilot/assets/stock_theme/colors/colors.json b/starpilot/assets/stock_theme/colors/colors.json similarity index 100% rename from frogpilot/assets/stock_theme/colors/colors.json rename to starpilot/assets/stock_theme/colors/colors.json diff --git a/frogpilot/assets/stock_theme/distance_icons/aggressive.png b/starpilot/assets/stock_theme/distance_icons/aggressive.png similarity index 100% rename from frogpilot/assets/stock_theme/distance_icons/aggressive.png rename to starpilot/assets/stock_theme/distance_icons/aggressive.png diff --git a/frogpilot/assets/stock_theme/distance_icons/relaxed.png b/starpilot/assets/stock_theme/distance_icons/relaxed.png similarity index 100% rename from frogpilot/assets/stock_theme/distance_icons/relaxed.png rename to starpilot/assets/stock_theme/distance_icons/relaxed.png diff --git a/frogpilot/assets/stock_theme/distance_icons/standard.png b/starpilot/assets/stock_theme/distance_icons/standard.png similarity index 100% rename from frogpilot/assets/stock_theme/distance_icons/standard.png rename to starpilot/assets/stock_theme/distance_icons/standard.png diff --git a/frogpilot/assets/stock_theme/distance_icons/traffic.png b/starpilot/assets/stock_theme/distance_icons/traffic.png similarity index 100% rename from frogpilot/assets/stock_theme/distance_icons/traffic.png rename to starpilot/assets/stock_theme/distance_icons/traffic.png diff --git a/frogpilot/assets/stock_theme/icons b/starpilot/assets/stock_theme/icons similarity index 100% rename from frogpilot/assets/stock_theme/icons rename to starpilot/assets/stock_theme/icons diff --git a/frogpilot/assets/stock_theme/sounds b/starpilot/assets/stock_theme/sounds similarity index 100% rename from frogpilot/assets/stock_theme/sounds rename to starpilot/assets/stock_theme/sounds diff --git a/frogpilot/assets/stock_theme/steering_wheel/wheel.png b/starpilot/assets/stock_theme/steering_wheel/wheel.png similarity index 100% rename from frogpilot/assets/stock_theme/steering_wheel/wheel.png rename to starpilot/assets/stock_theme/steering_wheel/wheel.png diff --git a/frogpilot/assets/theme_manager.py b/starpilot/assets/theme_manager.py similarity index 93% rename from frogpilot/assets/theme_manager.py rename to starpilot/assets/theme_manager.py index 2b78c6aa..674e63b9 100644 --- a/frogpilot/assets/theme_manager.py +++ b/starpilot/assets/theme_manager.py @@ -10,9 +10,9 @@ from dateutil import easter from pathlib import Path from urllib.parse import quote_plus -from openpilot.frogpilot.common.frogpilot_download_utilities import GITLAB_URL, download_file, get_repository_url, handle_error, verify_download -from openpilot.frogpilot.common.frogpilot_utilities import delete_file, extract_zip, load_json_file, update_json_file -from openpilot.frogpilot.common.frogpilot_variables import ACTIVE_THEME_PATH, RANDOM_EVENTS_PATH, RESOURCES_REPO, THEME_SAVE_PATH +from openpilot.starpilot.common.starpilot_download_utilities import GITLAB_URL, download_file, get_repository_url, handle_error, verify_download +from openpilot.starpilot.common.starpilot_utilities import delete_file, extract_zip, load_json_file, update_json_file +from openpilot.starpilot.common.starpilot_variables import ACTIVE_THEME_PATH, RANDOM_EVENTS_PATH, RESOURCES_REPO, THEME_SAVE_PATH CANCEL_DOWNLOAD_PARAM = "CancelThemeDownload" DOWNLOAD_PROGRESS_PARAM = "ThemeDownloadProgress" @@ -71,7 +71,7 @@ class ThemeManager: self.session.headers.update({ "Accept": "application/vnd.github.v3+json", "Accept-Language": "en", - "User-Agent": "frogpilot-theme-downloader/1.0 (https://github.com/FrogAi/FrogPilot)" + "User-Agent": "starpilot-theme-downloader/1.0 (https://github.com/FrogAi/StarPilot)" }) if boot_run: @@ -105,13 +105,13 @@ class ThemeManager: steering_wheel_save_path.parent.mkdir(parents=True, exist_ok=True) shutil.copy2(steering_wheel_image_path, steering_wheel_save_path) - default_boot_logo_path = Path(__file__).parent / "other_images/frogpilot_boot_logo.jpg" + default_boot_logo_path = Path(__file__).parent / "other_images/starpilot_boot_logo.jpg" boot_logo_save_path = THEME_SAVE_PATH / "bootlogos/starpilot.jpg" boot_logo_save_path.parent.mkdir(parents=True, exist_ok=True) if default_boot_logo_path.exists() and not boot_logo_save_path.exists(): shutil.copy2(default_boot_logo_path, boot_logo_save_path) - def download_theme(self, theme_component, theme_name, asset_param, frogpilot_toggles): + def download_theme(self, theme_component, theme_name, asset_param, starpilot_toggles): self.downloading_theme = True repo_url = get_repository_url(self.session) @@ -171,16 +171,16 @@ class ThemeManager: self.downloading_theme = False - self.update_themes(frogpilot_toggles) + self.update_themes(starpilot_toggles) return - if self.handle_verification_failure(extension, theme_component, theme_name, asset_param, theme_path, download_path, frogpilot_toggles): + if self.handle_verification_failure(extension, theme_component, theme_name, asset_param, theme_path, download_path, starpilot_toggles): return handle_error(download_path, asset_param, "Download failed...", "Download failed...", self.params_memory, DOWNLOAD_PROGRESS_PARAM) self.downloading_theme = False - def fetch_assets(self, repo_url, frogpilot_toggles): + def fetch_assets(self, repo_url, starpilot_toggles): is_github = "github" in repo_url is_gitlab = "gitlab" in repo_url @@ -239,7 +239,7 @@ class ThemeManager: if local_files and size > 0: local_size = self.theme_sizes.get("wheels", {}).get(theme_name) if local_size != size: - self.download_theme("steering_wheels", theme_name, THEME_COMPONENT_PARAMS["steering_wheels"], frogpilot_toggles) + self.download_theme("steering_wheels", theme_name, THEME_COMPONENT_PARAMS["steering_wheels"], starpilot_toggles) elif branch == "Distance-Icons": component_name = "distance_icons" @@ -250,7 +250,7 @@ class ThemeManager: if local_path.exists() and size > 0: local_size = self.theme_sizes.get("themes", {}).get(theme_name, {}).get(component_name) if local_size != size: - self.download_theme(component_name, theme_name, THEME_COMPONENT_PARAMS[component_name], frogpilot_toggles) + self.download_theme(component_name, theme_name, THEME_COMPONENT_PARAMS[component_name], starpilot_toggles) branch = "Themes" for item in list_files(branch): @@ -273,7 +273,7 @@ class ThemeManager: local_size = self.theme_sizes.get("boot_logos", {}).get(logo_name) if local_size != expected_size: print(f"boot logo {logo_name} is outdated, redownloading...") - self.download_theme("boot_logos", logo_name, THEME_COMPONENT_PARAMS["boot_logos"], frogpilot_toggles) + self.download_theme("boot_logos", logo_name, THEME_COMPONENT_PARAMS["boot_logos"], starpilot_toggles) continue for key in ("colors", "icons", "signals", "sounds"): @@ -285,7 +285,7 @@ class ThemeManager: local_size = self.theme_sizes.get("themes", {}).get(theme_name, {}).get(key) if local_size != expected_size: print(f"{key} {theme_name} is outdated, redownloading...") - self.download_theme(key, theme_name, THEME_COMPONENT_PARAMS[key], frogpilot_toggles) + self.download_theme(key, theme_name, THEME_COMPONENT_PARAMS[key], starpilot_toggles) break assets["boot_logos"].sort() @@ -357,7 +357,7 @@ class ThemeManager: "christmas_week": date(year, 12, 25) } - def handle_verification_failure(self, extension, theme_component, theme_name, asset_param, theme_path, download_path, frogpilot_toggles): + def handle_verification_failure(self, extension, theme_component, theme_name, asset_param, theme_path, download_path, starpilot_toggles): if theme_component == "boot_logos": download_link = f"{GITLAB_URL}/Themes/bootlogo" name_candidates = list(dict.fromkeys([theme_name, theme_name.replace("_", "-"), theme_name.replace("-", "_")])) @@ -391,7 +391,7 @@ class ThemeManager: self.downloading_theme = False - self.update_themes(frogpilot_toggles) + self.update_themes(starpilot_toggles) return True return False @@ -456,10 +456,10 @@ class ThemeManager: return random.choice(candidates) if candidates else "stock" - def update_active_theme(self, time_validated, frogpilot_toggles, boot_run=False, randomize_theme=False): - boot_logo = getattr(frogpilot_toggles, "boot_logo", "starpilot") + def update_active_theme(self, time_validated, starpilot_toggles, boot_run=False, randomize_theme=False): + boot_logo = getattr(starpilot_toggles, "boot_logo", "starpilot") - if time_validated and frogpilot_toggles.holiday_themes: + if time_validated and starpilot_toggles.holiday_themes: self.holiday_theme = self.update_holiday() else: self.holiday_theme = "stock" @@ -474,10 +474,10 @@ class ThemeManager: "turn_signal_pack": ("signals", self.holiday_theme), "wheel_image": ("wheel_image", self.holiday_theme) } - elif (boot_run or randomize_theme) and frogpilot_toggles.random_themes: + elif (boot_run or randomize_theme) and starpilot_toggles.random_themes: available_themes = self.get_full_themes() - if frogpilot_toggles.random_themes_holidays: + if starpilot_toggles.random_themes_holidays: available_themes.extend(HOLIDAY_SLUGS.keys()) selected_theme = self.randomize_theme_asset(available_themes) @@ -491,15 +491,15 @@ class ThemeManager: "turn_signal_pack": ("signals", selected_theme.replace("-animated", "")), "wheel_image": ("wheel_image", self.randomize_wheel_image(available_themes, selected_theme.replace("-animated", ""))) } - elif not frogpilot_toggles.random_themes: + elif not starpilot_toggles.random_themes: asset_mappings = { "boot_logo": ("boot_logo", boot_logo), - "color_scheme": ("colors", frogpilot_toggles.color_scheme), - "distance_icons": ("distance_icons", frogpilot_toggles.distance_icons), - "icon_pack": ("icons", frogpilot_toggles.icon_pack), - "sound_pack": ("sounds", frogpilot_toggles.sound_pack), - "turn_signal_pack": ("signals", frogpilot_toggles.signal_icons), - "wheel_image": ("wheel_image", frogpilot_toggles.wheel_image) + "color_scheme": ("colors", starpilot_toggles.color_scheme), + "distance_icons": ("distance_icons", starpilot_toggles.distance_icons), + "icon_pack": ("icons", starpilot_toggles.icon_pack), + "sound_pack": ("sounds", starpilot_toggles.sound_pack), + "turn_signal_pack": ("signals", starpilot_toggles.signal_icons), + "wheel_image": ("wheel_image", starpilot_toggles.wheel_image) } else: return @@ -633,7 +633,7 @@ class ThemeManager: update_json_file(self.theme_sizes_path, self.theme_sizes) - def update_themes(self, frogpilot_toggles, boot_run=False): + def update_themes(self, starpilot_toggles, boot_run=False): if self.downloading_theme: return @@ -642,7 +642,7 @@ class ThemeManager: print("GitHub and GitLab are offline...") return - assets = self.fetch_assets(repo_url, frogpilot_toggles) + assets = self.fetch_assets(repo_url, starpilot_toggles) if not assets: return @@ -680,13 +680,13 @@ class ThemeManager: print(f"Downloadable Wheels: {downloadable_wheels}") if boot_run: - self.validate_themes(downloadable_boot_logos, downloadable_colors, downloadable_distance_icons, downloadable_icons, downloadable_signals, downloadable_sounds, downloadable_wheels, frogpilot_toggles) + self.validate_themes(downloadable_boot_logos, downloadable_colors, downloadable_distance_icons, downloadable_icons, downloadable_signals, downloadable_sounds, downloadable_wheels, starpilot_toggles) self.update_theme_params(downloadable_boot_logos, downloadable_colors, downloadable_distance_icons, downloadable_icons, downloadable_signals, downloadable_sounds, downloadable_wheels) @staticmethod def update_boot_logo(image): - default_boot_logo = Path(__file__).parent / "other_images/frogpilot_boot_logo.jpg" + default_boot_logo = Path(__file__).parent / "other_images/starpilot_boot_logo.jpg" if not default_boot_logo.exists(): return @@ -732,7 +732,7 @@ class ThemeManager: destination_file.symlink_to(source_file) print(f"Linked {destination_file} to {source_file}") - def validate_themes(self, downloadable_boot_logos, downloadable_colors, downloadable_distance_icons, downloadable_icons, downloadable_signals, downloadable_sounds, downloadable_wheels, frogpilot_toggles): + def validate_themes(self, downloadable_boot_logos, downloadable_colors, downloadable_distance_icons, downloadable_icons, downloadable_signals, downloadable_sounds, downloadable_wheels, starpilot_toggles): downloaded_data = self.params.get("ThemesDownloaded") if isinstance(downloaded_data, (bytes, bytearray)): downloaded_data = downloaded_data.decode("utf-8", "ignore") @@ -750,8 +750,8 @@ class ThemeManager: matching_files = list(boot_logos_path.glob(f"{file_stem}.*")) if not matching_files: print(f"Missing boot logo '{display_name}'. Downloading...") - self.download_theme("boot_logos", file_stem, THEME_COMPONENT_PARAMS["boot_logos"], frogpilot_toggles) - self.update_active_theme(True, frogpilot_toggles) + self.download_theme("boot_logos", file_stem, THEME_COMPONENT_PARAMS["boot_logos"], starpilot_toggles) + self.update_active_theme(True, starpilot_toggles) for display_name, components in downloaded_data.get("themes", {}).items(): raw_name = display_name.lower().replace(" ", "_").replace("(", "").replace(")", "") @@ -761,8 +761,8 @@ class ThemeManager: component_path = THEME_SAVE_PATH / "theme_packs" / theme_folder_name / component if not component_path.is_dir() or not any(component_path.iterdir()): print(f"Missing or empty component '{component}' for theme '{theme_folder_name}'. Downloading...") - self.download_theme(component, theme_folder_name, THEME_COMPONENT_PARAMS.get(component), frogpilot_toggles) - self.update_active_theme(True, frogpilot_toggles) + self.download_theme(component, theme_folder_name, THEME_COMPONENT_PARAMS.get(component), starpilot_toggles) + self.update_active_theme(True, starpilot_toggles) wheels_path = THEME_SAVE_PATH / "steering_wheels" for display_name in downloaded_data.get("steering_wheels", []): @@ -770,8 +770,8 @@ class ThemeManager: matching_files = list(wheels_path.glob(f"{file_stem}.*")) if not matching_files: print(f"Missing steering wheel '{display_name}'. Downloading...") - self.download_theme("steering_wheels", file_stem, THEME_COMPONENT_PARAMS["steering_wheels"], frogpilot_toggles) - self.update_active_theme(True, frogpilot_toggles) + self.download_theme("steering_wheels", file_stem, THEME_COMPONENT_PARAMS["steering_wheels"], starpilot_toggles) + self.update_active_theme(True, starpilot_toggles) protected_dirs = {THEME_SAVE_PATH / "bootlogos", THEME_SAVE_PATH / "theme_packs", THEME_SAVE_PATH / "steering_wheels"} for dir_path in THEME_SAVE_PATH.glob("**/*"): diff --git a/frogpilot/assets/toggle_icons/icon_advanced_device.png b/starpilot/assets/toggle_icons/icon_advanced_device.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_advanced_device.png rename to starpilot/assets/toggle_icons/icon_advanced_device.png diff --git a/frogpilot/assets/toggle_icons/icon_advanced_lateral_tune.png b/starpilot/assets/toggle_icons/icon_advanced_lateral_tune.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_advanced_lateral_tune.png rename to starpilot/assets/toggle_icons/icon_advanced_lateral_tune.png diff --git a/frogpilot/assets/toggle_icons/icon_advanced_longitudinal_tune.png b/starpilot/assets/toggle_icons/icon_advanced_longitudinal_tune.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_advanced_longitudinal_tune.png rename to starpilot/assets/toggle_icons/icon_advanced_longitudinal_tune.png diff --git a/frogpilot/assets/toggle_icons/icon_always_on_lateral.png b/starpilot/assets/toggle_icons/icon_always_on_lateral.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_always_on_lateral.png rename to starpilot/assets/toggle_icons/icon_always_on_lateral.png diff --git a/frogpilot/assets/toggle_icons/icon_calendar.png b/starpilot/assets/toggle_icons/icon_calendar.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_calendar.png rename to starpilot/assets/toggle_icons/icon_calendar.png diff --git a/frogpilot/assets/toggle_icons/icon_conditional.png b/starpilot/assets/toggle_icons/icon_conditional.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_conditional.png rename to starpilot/assets/toggle_icons/icon_conditional.png diff --git a/frogpilot/assets/toggle_icons/icon_device.png b/starpilot/assets/toggle_icons/icon_device.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_device.png rename to starpilot/assets/toggle_icons/icon_device.png diff --git a/frogpilot/assets/toggle_icons/icon_display.png b/starpilot/assets/toggle_icons/icon_display.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_display.png rename to starpilot/assets/toggle_icons/icon_display.png diff --git a/frogpilot/assets/toggle_icons/icon_frog.png b/starpilot/assets/toggle_icons/icon_frog.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_frog.png rename to starpilot/assets/toggle_icons/icon_frog.png diff --git a/frogpilot/assets/toggle_icons/icon_green_light.png b/starpilot/assets/toggle_icons/icon_green_light.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_green_light.png rename to starpilot/assets/toggle_icons/icon_green_light.png diff --git a/frogpilot/assets/toggle_icons/icon_lane.png b/starpilot/assets/toggle_icons/icon_lane.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_lane.png rename to starpilot/assets/toggle_icons/icon_lane.png diff --git a/frogpilot/assets/toggle_icons/icon_lateral_tune.png b/starpilot/assets/toggle_icons/icon_lateral_tune.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_lateral_tune.png rename to starpilot/assets/toggle_icons/icon_lateral_tune.png diff --git a/frogpilot/assets/toggle_icons/icon_light.png b/starpilot/assets/toggle_icons/icon_light.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_light.png rename to starpilot/assets/toggle_icons/icon_light.png diff --git a/frogpilot/assets/toggle_icons/icon_longitudinal_tune.png b/starpilot/assets/toggle_icons/icon_longitudinal_tune.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_longitudinal_tune.png rename to starpilot/assets/toggle_icons/icon_longitudinal_tune.png diff --git a/frogpilot/assets/toggle_icons/icon_map.png b/starpilot/assets/toggle_icons/icon_map.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_map.png rename to starpilot/assets/toggle_icons/icon_map.png diff --git a/frogpilot/assets/toggle_icons/icon_message.png b/starpilot/assets/toggle_icons/icon_message.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_message.png rename to starpilot/assets/toggle_icons/icon_message.png diff --git a/frogpilot/assets/toggle_icons/icon_mute.png b/starpilot/assets/toggle_icons/icon_mute.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_mute.png rename to starpilot/assets/toggle_icons/icon_mute.png diff --git a/frogpilot/assets/toggle_icons/icon_navigate.png b/starpilot/assets/toggle_icons/icon_navigate.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_navigate.png rename to starpilot/assets/toggle_icons/icon_navigate.png diff --git a/frogpilot/assets/toggle_icons/icon_personality.png b/starpilot/assets/toggle_icons/icon_personality.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_personality.png rename to starpilot/assets/toggle_icons/icon_personality.png diff --git a/frogpilot/assets/toggle_icons/icon_quality_of_life.png b/starpilot/assets/toggle_icons/icon_quality_of_life.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_quality_of_life.png rename to starpilot/assets/toggle_icons/icon_quality_of_life.png diff --git a/frogpilot/assets/toggle_icons/icon_rainbow.png b/starpilot/assets/toggle_icons/icon_rainbow.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_rainbow.png rename to starpilot/assets/toggle_icons/icon_rainbow.png diff --git a/frogpilot/assets/toggle_icons/icon_random.png b/starpilot/assets/toggle_icons/icon_random.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_random.png rename to starpilot/assets/toggle_icons/icon_random.png diff --git a/frogpilot/assets/toggle_icons/icon_random_themes.png b/starpilot/assets/toggle_icons/icon_random_themes.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_random_themes.png rename to starpilot/assets/toggle_icons/icon_random_themes.png diff --git a/frogpilot/assets/toggle_icons/icon_road.png b/starpilot/assets/toggle_icons/icon_road.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_road.png rename to starpilot/assets/toggle_icons/icon_road.png diff --git a/frogpilot/assets/toggle_icons/icon_sound.png b/starpilot/assets/toggle_icons/icon_sound.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_sound.png rename to starpilot/assets/toggle_icons/icon_sound.png diff --git a/frogpilot/assets/toggle_icons/icon_speed_limit.png b/starpilot/assets/toggle_icons/icon_speed_limit.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_speed_limit.png rename to starpilot/assets/toggle_icons/icon_speed_limit.png diff --git a/frogpilot/assets/toggle_icons/icon_speed_map.png b/starpilot/assets/toggle_icons/icon_speed_map.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_speed_map.png rename to starpilot/assets/toggle_icons/icon_speed_map.png diff --git a/frogpilot/assets/toggle_icons/icon_steering.png b/starpilot/assets/toggle_icons/icon_steering.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_steering.png rename to starpilot/assets/toggle_icons/icon_steering.png diff --git a/frogpilot/assets/toggle_icons/icon_system.png b/starpilot/assets/toggle_icons/icon_system.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_system.png rename to starpilot/assets/toggle_icons/icon_system.png diff --git a/frogpilot/assets/toggle_icons/icon_tuning.png b/starpilot/assets/toggle_icons/icon_tuning.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_tuning.png rename to starpilot/assets/toggle_icons/icon_tuning.png diff --git a/frogpilot/assets/toggle_icons/icon_vehicle.png b/starpilot/assets/toggle_icons/icon_vehicle.png similarity index 100% rename from frogpilot/assets/toggle_icons/icon_vehicle.png rename to starpilot/assets/toggle_icons/icon_vehicle.png diff --git a/frogpilot/common/frogpilot_backups.py b/starpilot/common/starpilot_backups.py similarity index 87% rename from frogpilot/common/frogpilot_backups.py rename to starpilot/common/starpilot_backups.py index afae396f..eb1b1e28 100644 --- a/frogpilot/common/frogpilot_backups.py +++ b/starpilot/common/starpilot_backups.py @@ -10,26 +10,26 @@ from openpilot.common.basedir import BASEDIR from openpilot.common.params import Params from openpilot.system.hardware.hw import Paths -from openpilot.frogpilot.common.frogpilot_utilities import delete_file -from openpilot.frogpilot.common.frogpilot_variables import EXCLUDED_KEYS, FROGPILOT_BACKUPS, TOGGLE_BACKUPS +from openpilot.starpilot.common.starpilot_utilities import delete_file +from openpilot.starpilot.common.starpilot_variables import EXCLUDED_KEYS, STARPILOT_BACKUPS, TOGGLE_BACKUPS -def backup_frogpilot(build_metadata, params): +def backup_starpilot(build_metadata, params): maximum_backups = 3 - cleanup_backups(FROGPILOT_BACKUPS, maximum_backups) + cleanup_backups(STARPILOT_BACKUPS, maximum_backups) today = datetime.datetime.now().date() - for backup in FROGPILOT_BACKUPS.glob("*_auto.tar.zst"): + for backup in STARPILOT_BACKUPS.glob("*_auto.tar.zst"): if backup.name.endswith(f"_{build_metadata.channel}_auto.tar.zst"): if datetime.datetime.fromtimestamp(backup.stat().st_mtime).date() == today: if not backup.name.startswith(f"{build_metadata.openpilot.git_commit[:6]}_"): delete_file(backup, report=False) - _, _, free = shutil.disk_usage(FROGPILOT_BACKUPS) + _, _, free = shutil.disk_usage(STARPILOT_BACKUPS) minimum_backup_size = params.get("MinimumBackupSize") if free > minimum_backup_size * maximum_backups: - destination = FROGPILOT_BACKUPS / f"{build_metadata.openpilot.git_commit}_{build_metadata.channel}_auto" - create_backup(Path(BASEDIR), destination, "Successfully backed up FrogPilot!", "Failed to backup FrogPilot...", params, minimum_backup_size, compressed=True) + destination = STARPILOT_BACKUPS / f"{build_metadata.openpilot.git_commit}_{build_metadata.channel}_auto" + create_backup(Path(BASEDIR), destination, "Successfully backed up StarPilot!", "Failed to backup StarPilot...", params, minimum_backup_size, compressed=True) def backup_toggles(params, boot_run=False): diff --git a/frogpilot/common/frogpilot_download_utilities.py b/starpilot/common/starpilot_download_utilities.py similarity index 97% rename from frogpilot/common/frogpilot_download_utilities.py rename to starpilot/common/starpilot_download_utilities.py index b14c4014..3300cb48 100644 --- a/frogpilot/common/frogpilot_download_utilities.py +++ b/starpilot/common/starpilot_download_utilities.py @@ -3,8 +3,8 @@ import requests from datetime import datetime, timezone -from openpilot.frogpilot.common.frogpilot_utilities import delete_file, is_url_pingable -from openpilot.frogpilot.common.frogpilot_variables import RESOURCES_REPO +from openpilot.starpilot.common.starpilot_utilities import delete_file, is_url_pingable +from openpilot.starpilot.common.starpilot_variables import RESOURCES_REPO GITHUB_URL = f"https://raw.githubusercontent.com/{RESOURCES_REPO}" GITLAB_URL = f"https://gitlab.com/{RESOURCES_REPO}/-/raw" diff --git a/frogpilot/common/frogpilot_functions.py b/starpilot/common/starpilot_functions.py similarity index 73% rename from frogpilot/common/frogpilot_functions.py rename to starpilot/common/starpilot_functions.py index bc9d514f..56457da3 100644 --- a/frogpilot/common/frogpilot_functions.py +++ b/starpilot/common/starpilot_functions.py @@ -15,46 +15,16 @@ from openpilot.system.athena.registration import register from openpilot.system.hardware import HARDWARE from openpilot.system.version import get_build_metadata -from openpilot.frogpilot.assets.theme_manager import ThemeManager -from openpilot.frogpilot.common.frogpilot_backups import backup_frogpilot -from openpilot.frogpilot.common.frogpilot_utilities import get_frogpilot_api_info, is_FrogsGoMoo, is_url_pingable, run_cmd, use_konik_server -from openpilot.frogpilot.common.frogpilot_variables import ( - ERROR_LOGS_PATH, FROGPILOT_API, FROGS_GO_MOO_PATH, HD_LOGS_PATH, KONIK_LOGS_PATH, MAPS_PATH, THEME_SAVE_PATH, - FrogPilotVariables, get_frogpilot_toggles +from openpilot.starpilot.assets.theme_manager import ThemeManager +from openpilot.starpilot.common.starpilot_backups import backup_starpilot +from openpilot.starpilot.common.starpilot_utilities import get_starpilot_api_info, is_FrogsGoMoo, is_url_pingable, run_cmd, use_konik_server +from openpilot.starpilot.common.starpilot_variables import ( + ERROR_LOGS_PATH, STARPILOT_API, FROGS_GO_MOO_PATH, HD_LOGS_PATH, KONIK_LOGS_PATH, MAPS_PATH, THEME_SAVE_PATH, + StarPilotVariables, get_starpilot_toggles ) -def capture_report(discord_user, report, params, frogpilot_toggles): - if not is_url_pingable(FROGPILOT_API): - return - - api_token, build_metadata, device_type, dongle_id = get_frogpilot_api_info() - - error_file_path = ERROR_LOGS_PATH / "error.txt" - error_content = "No error log found." - if error_file_path.exists(): - error_content = error_file_path.read_text()[:1000] - - payload = { - "api_token": api_token, - "build_metadata": build_metadata, - "device": device_type, - "discord_user": discord_user, - "error_content": error_content, - "frogpilot_dongle_id": dongle_id, - "frogpilot_toggles": frogpilot_toggles, - "report": report, - } - - try: - response = requests.post(f"{FROGPILOT_API}/discord/report", json=payload, headers={"Content-Type": "application/json", "User-Agent": "frogpilot-api/1.0"}, timeout=30) - response.raise_for_status() - print("Successfully sent error report!") - except requests.exceptions.RequestException as exception: - print(f"Error sending report: {exception}") - - -def frogpilot_boot_functions(build_metadata, params): +def starpilot_boot_functions(build_metadata, params): params_memory = Params(memory=True) maps_selected = params.get("MapsSelected") @@ -74,8 +44,8 @@ def frogpilot_boot_functions(build_metadata, params): params.put("BuildMetadata", json.dumps(dataclasses.asdict(build_metadata))) - FrogPilotVariables() - ThemeManager(params, params_memory, boot_run=True).update_active_theme(time_validated=system_time_valid(), frogpilot_toggles=get_frogpilot_toggles(), boot_run=True) + StarPilotVariables() + ThemeManager(params, params_memory, boot_run=True).update_active_theme(time_validated=system_time_valid(), starpilot_toggles=get_starpilot_toggles(), boot_run=True) if use_konik_server(): if params.get("KonikDongleId") is not None: @@ -91,12 +61,12 @@ def frogpilot_boot_functions(build_metadata, params): print("Waiting for system time to become valid...") time.sleep(1) - backup_frogpilot(build_metadata, params) + backup_starpilot(build_metadata, params) threading.Thread(target=boot_thread, daemon=True).start() -def install_frogpilot(build_metadata, params): +def install_starpilot(build_metadata, params): paths = [ ERROR_LOGS_PATH, HD_LOGS_PATH, @@ -108,9 +78,9 @@ def install_frogpilot(build_metadata, params): register_device(build_metadata, params) - update_boot_logo(frogpilot=True, selected_logo=params.get("BootLogo")) + update_boot_logo(starpilot=True, selected_logo=params.get("BootLogo")) - if build_metadata.channel == "FrogPilot-Development" and is_FrogsGoMoo(): + if build_metadata.channel == "StarPilot-Development" and is_FrogsGoMoo(): mount_options = run_cmd(["findmnt", "-n", "-o", "OPTIONS", "/persist"], "Successfully retrieved mount options", "Failed to retrieve mount options") run_cmd(["sudo", "mount", "-o", "remount,rw", "/persist"], "Successfully remounted /persist as read-write", "Failed to remount /persist") run_cmd(["sudo", "python3", FROGS_GO_MOO_PATH], "Successfully ran frogsgomoo.py", "Failed to run frogsgomoo.py") @@ -122,53 +92,53 @@ def register_device(build_metadata, params): dongle_id = params.get("DongleId") if isinstance(dongle_id, bytes): dongle_id = dongle_id.decode("utf-8", errors="ignore") - frogpilot_dongle_id = params.get("FrogPilotDongleId") - if isinstance(frogpilot_dongle_id, bytes): - frogpilot_dongle_id = frogpilot_dongle_id.decode("utf-8", errors="ignore") + starpilot_dongle_id = params.get("StarPilotDongleId") + if isinstance(starpilot_dongle_id, bytes): + starpilot_dongle_id = starpilot_dongle_id.decode("utf-8", errors="ignore") # Keep a stable local identifier even if the remote registration endpoint # is unavailable or slow to respond. - if dongle_id and not frogpilot_dongle_id: - params.put("FrogPilotDongleId", dongle_id) + if dongle_id and not starpilot_dongle_id: + params.put("StarPilotDongleId", dongle_id) - while not is_url_pingable(FROGPILOT_API): + while not is_url_pingable(STARPILOT_API): time.sleep(60) payload = { - "api_token": params.get("FrogPilotApiToken"), + "api_token": params.get("StarPilotApiToken"), "build_metadata": dataclasses.asdict(build_metadata), "device": HARDWARE.get_device_type(), "dongle_id": dongle_id, - "frogpilot_dongle_id": params.get("FrogPilotDongleId"), + "starpilot_dongle_id": params.get("StarPilotDongleId"), } try: - response = requests.post(f"{FROGPILOT_API}/register", json=payload, headers={"Content-Type": "application/json", "User-Agent": "frogpilot-api/1.0"}, timeout=10) + response = requests.post(f"{STARPILOT_API}/register", json=payload, headers={"Content-Type": "application/json", "User-Agent": "starpilot-api/1.0"}, timeout=10) response.raise_for_status() data = response.json() - params.put("FrogPilotApiToken", data.get("api_token", "")) - params.put("FrogPilotDongleId", data.get("frogpilot_dongle_id")) + params.put("StarPilotApiToken", data.get("api_token", "")) + params.put("StarPilotDongleId", data.get("starpilot_dongle_id")) except Exception: pass threading.Thread(target=register_thread, daemon=True).start() -def uninstall_frogpilot(): +def uninstall_starpilot(): update_boot_logo(stock=True) HARDWARE.uninstall() -def update_boot_logo(frogpilot=False, stock=False, selected_logo=None): +def update_boot_logo(starpilot=False, stock=False, selected_logo=None): if HARDWARE.get_device_type() == "pc": return boot_logo_location = Path("/usr/comma/bg.jpg") - if frogpilot: - target_logo = Path(BASEDIR) / "frogpilot/assets/other_images/frogpilot_boot_logo.jpg" + if starpilot: + target_logo = Path(BASEDIR) / "starpilot/assets/other_images/starpilot_boot_logo.jpg" if selected_logo: selected = selected_logo.decode("utf-8", "ignore") if isinstance(selected_logo, (bytes, bytearray)) else str(selected_logo) selected = selected.strip().lower().replace(" ", "_") @@ -177,9 +147,9 @@ def update_boot_logo(frogpilot=False, stock=False, selected_logo=None): if candidates: target_logo = candidates[0] elif stock: - target_logo = Path(BASEDIR) / "frogpilot/assets/other_images/stock_bg.jpg" + target_logo = Path(BASEDIR) / "starpilot/assets/other_images/stock_bg.jpg" else: - print(f'Error: Must specify either "frogpilot=True" or "stock=True"') + print(f'Error: Must specify either "starpilot=True" or "stock=True"') return if not target_logo.is_file(): @@ -187,7 +157,7 @@ def update_boot_logo(frogpilot=False, stock=False, selected_logo=None): return source_logo = target_logo - staged_logo = Path("/tmp/frogpilot_boot_logo.jpg") + staged_logo = Path("/tmp/starpilot_boot_logo.jpg") try: from PIL import Image diff --git a/frogpilot/common/frogpilot_utilities.py b/starpilot/common/starpilot_utilities.py similarity index 94% rename from frogpilot/common/frogpilot_utilities.py rename to starpilot/common/starpilot_utilities.py index 80419ce2..6c4b49ec 100644 --- a/frogpilot/common/frogpilot_utilities.py +++ b/starpilot/common/starpilot_utilities.py @@ -23,7 +23,7 @@ from openpilot.system.hardware import HARDWARE from openpilot.system.version import get_build_metadata from panda import Panda, FW_PATH -from openpilot.frogpilot.common.frogpilot_variables import EARTH_RADIUS, FROGPILOT_API, FROGS_GO_MOO_PATH, KONIK_PATH +from openpilot.starpilot.common.starpilot_variables import EARTH_RADIUS, STARPILOT_API, FROGS_GO_MOO_PATH, KONIK_PATH def capture_exception(exception): @@ -142,8 +142,8 @@ def clean_model_name(name): return name.replace("(Default)", "").strip() -def contains_event_type(events, frogpilot_events, *event_types): - return any(events.contains(event_type) or frogpilot_events.contains(event_type) for event_type in event_types) +def contains_event_type(events, starpilot_events, *event_types): + return any(events.contains(event_type) or starpilot_events.contains(event_type) for event_type in event_types) def delete_file(path, print_error=True, report=True): @@ -201,13 +201,13 @@ def flash_panda(params_memory): params_memory.remove("FlashPanda") -def get_frogpilot_api_info(): +def get_starpilot_api_info(): params = Params() - api_token = params.get("FrogPilotApiToken") + api_token = params.get("StarPilotApiToken") build_metadata = dataclasses.asdict(get_build_metadata()) device_type = HARDWARE.get_device_type() - dongle_id = params.get("FrogPilotDongleId") + dongle_id = params.get("StarPilotDongleId") return api_token, build_metadata, device_type, dongle_id @@ -219,16 +219,16 @@ def get_lock_status(can_parser, can_sock): def get_sentry_dsn(): try: - api_token, build_metadata, device_type, dongle_id = get_frogpilot_api_info() + api_token, build_metadata, device_type, dongle_id = get_starpilot_api_info() payload = { "api_token": api_token, "build_metadata": build_metadata, "device": device_type, - "frogpilot_dongle_id": dongle_id, + "starpilot_dongle_id": dongle_id, } - response = requests.post(f"{FROGPILOT_API}/sentry", json=payload, headers={"Content-Type": "application/json", "User-Agent": "frogpilot-api/1.0"}, timeout=10) + response = requests.post(f"{STARPILOT_API}/sentry", json=payload, headers={"Content-Type": "application/json", "User-Agent": "starpilot-api/1.0"}, timeout=10) response.raise_for_status() return response.json().get("dsn", "") except Exception: @@ -246,7 +246,7 @@ def is_url_pingable(url): if not hasattr(is_url_pingable, "session"): is_url_pingable.session = requests.Session() - is_url_pingable.session.headers.update({"User-Agent": "frogpilot-ping-test/1.0 (https://github.com/FrogAi/FrogPilot)"}) + is_url_pingable.session.headers.update({"User-Agent": "starpilot-ping-test/1.0 (https://github.com/FrogAi/StarPilot)"}) try: response = is_url_pingable.session.head(url, timeout=10, allow_redirects=True) diff --git a/frogpilot/common/frogpilot_variables.py b/starpilot/common/starpilot_variables.py similarity index 95% rename from frogpilot/common/frogpilot_variables.py rename to starpilot/common/starpilot_variables.py index 7260098d..9724e1fb 100644 --- a/frogpilot/common/frogpilot_variables.py +++ b/starpilot/common/starpilot_variables.py @@ -19,7 +19,7 @@ from opendbc.car.hyundai.values import EV_CAR as HYUNDAI_EV_CAR, HyundaiFlags from opendbc.car.interfaces import TORQUE_SUBSTITUTE_PATH, CarInterfaceBase, GearShifter from opendbc.car.mock.values import CAR as MOCK from opendbc.car.subaru.values import SubaruFlags -from opendbc.car.toyota.values import ToyotaFrogPilotFlags +from opendbc.car.toyota.values import ToyotaStarPilotFlags from openpilot.common.basedir import BASEDIR from openpilot.common.constants import CV from openpilot.common.params import Params @@ -43,21 +43,36 @@ THRESHOLD = 1 - 1 / math.e # Requires the condition to be true fo NON_DRIVING_GEARS = [GearShifter.neutral, GearShifter.park, GearShifter.reverse, GearShifter.unknown] -FROGPILOT_API = "https://frogpilot.com/api" +# Temporary fallback until StarPilot hosts its own weather-compatible API. +STARPILOT_API = os.getenv("STARPILOT_API", "https://frogpilot.com/api") LEGACY_CARMODEL_MIGRATIONS = { "CHEVROLET_BOLT_CC_2019_2021": "CHEVROLET_BOLT_CC_2018_2021", } +LEGACY_STARPILOT_PARAM_RENAMES = { + "FrogPilotApiToken": "StarPilotApiToken", + "FrogPilotCarParams": "StarPilotCarParams", + "FrogPilotCarParamsPersistent": "StarPilotCarParamsPersistent", + "FrogPilotDongleId": "StarPilotDongleId", + "FrogPilotStats": "StarPilotStats", +} + +LEGACY_STARPILOT_STATS_KEY_RENAMES = { + "FrogPilotDrives": "StarPilotDrives", + "FrogPilotMeters": "StarPilotMeters", + "FrogPilotSeconds": "StarPilotSeconds", +} + RESOURCES_REPO = os.getenv("STARPILOT_RESOURCES_REPO", "firestar5683/StarPilot-Resources") -ACTIVE_THEME_PATH = Path(BASEDIR) / "frogpilot/assets/active_theme" -METADATAS_PATH = Path(BASEDIR) / "frogpilot/assets/model_metadata" -RANDOM_EVENTS_PATH = Path(BASEDIR) / "frogpilot/assets/random_events" -STOCK_THEME_PATH = Path(BASEDIR) / "frogpilot/assets/stock_theme" +ACTIVE_THEME_PATH = Path(BASEDIR) / "starpilot/assets/active_theme" +METADATAS_PATH = Path(BASEDIR) / "starpilot/assets/model_metadata" +RANDOM_EVENTS_PATH = Path(BASEDIR) / "starpilot/assets/random_events" +STOCK_THEME_PATH = Path(BASEDIR) / "starpilot/assets/stock_theme" THEME_COLORS_PATH = (ACTIVE_THEME_PATH / "colors/colors.json") if HARDWARE.get_device_type() == "pc": - _FP_PC_ROOT = Path(Paths.comma_home()) / "frogpilot" + _FP_PC_ROOT = Path(Paths.comma_home()) / "starpilot" _FP_DATA_ROOT = _FP_PC_ROOT / "data" _FP_CACHE_ROOT = _FP_PC_ROOT / "cache" _FP_PERSIST_ROOT = Path(Paths.persist_root()) @@ -74,7 +89,7 @@ SCREEN_RECORDINGS_PATH = _FP_DATA_ROOT / "media/screen_recordings" VIDEO_CACHE_PATH = _FP_DATA_ROOT / "video_cache" BACKUP_PATH = _FP_CACHE_ROOT / "on_backup" -FROGPILOT_BACKUPS = _FP_DATA_ROOT / "backups" +STARPILOT_BACKUPS = _FP_DATA_ROOT / "backups" TOGGLE_BACKUPS = _FP_DATA_ROOT / "toggle_backups" FROGS_GO_MOO_PATH = _FP_PERSIST_ROOT / "frogsgomoo.py" @@ -87,7 +102,7 @@ KONIK_PATH = _FP_CACHE_ROOT / "use_konik" MAPS_PATH = _FP_DATA_ROOT / "media/0/osm/offline" -NNFF_MODELS_PATH = Path(BASEDIR) / "frogpilot/assets/nnff_models" +NNFF_MODELS_PATH = Path(BASEDIR) / "starpilot/assets/nnff_models" BUTTON_FUNCTIONS = { "NOTHING": 0, @@ -166,7 +181,7 @@ EXCLUDED_KEYS = { "CommunityFavorites", "CurvatureData", "ExperimentalLongitudinalEnabled", - "FrogPilotCarParamsPersistent", + "StarPilotCarParamsPersistent", "KonikMinutes", "LastUpdateTime", "MapBoxRequests", @@ -196,7 +211,7 @@ TUNING_LEVELS = { "DEVELOPER": 3 } -# Shared params handles for modules that import these from frogpilot_variables. +# Shared params handles for modules that import these from starpilot_variables. params = Params(return_defaults=True) params_memory = Params(memory=True) @@ -236,48 +251,48 @@ def normalize_legacy_car_model(car_model): normalized = LEGACY_CARMODEL_MIGRATIONS.get(car_model, car_model) return normalized -def get_frogpilot_toggles(sm=messaging.SubMaster(["frogpilotPlan"])): - toggles = process_frogpilot_toggles(sm["frogpilotPlan"].frogpilotToggles) +def get_starpilot_toggles(sm=messaging.SubMaster(["starpilotPlan"])): + toggles = process_starpilot_toggles(sm["starpilotPlan"].starpilotToggles) # Force drive-state controls must be authoritative from params so they - # apply immediately even if frogpilotPlan publication is temporarily stale. - if not hasattr(get_frogpilot_toggles, "_params"): - get_frogpilot_toggles._params = Params(return_defaults=True) + # apply immediately even if starpilotPlan publication is temporarily stale. + if not hasattr(get_starpilot_toggles, "_params"): + get_starpilot_toggles._params = Params(return_defaults=True) - toggles.force_offroad = get_frogpilot_toggles._params.get_bool("ForceOffroad") - toggles.force_onroad = get_frogpilot_toggles._params.get_bool("ForceOnroad") + toggles.force_offroad = get_starpilot_toggles._params.get_bool("ForceOffroad") + toggles.force_onroad = get_starpilot_toggles._params.get_bool("ForceOnroad") return toggles @cache -def process_frogpilot_toggles(toggles): +def process_starpilot_toggles(toggles): if toggles: return SimpleNamespace(**json.loads(toggles)) - return FrogPilotVariables().frogpilot_toggles + return StarPilotVariables().starpilot_toggles -def update_frogpilot_toggles(): - if not hasattr(update_frogpilot_toggles, "_params_memory"): - update_frogpilot_toggles._params_memory = Params(memory=True) +def update_starpilot_toggles(): + if not hasattr(update_starpilot_toggles, "_params_memory"): + update_starpilot_toggles._params_memory = Params(memory=True) - update_frogpilot_toggles._params_memory.put_bool("FrogPilotTogglesUpdated", True) + update_starpilot_toggles._params_memory.put_bool("StarPilotTogglesUpdated", True) -class FrogPilotVariables: +class StarPilotVariables: def __init__(self): self.params = Params(return_defaults=True) self.params_raw = Params() self.params_memory = Params(memory=True) - self.frogpilot_toggles = SimpleNamespace() - toggle = self.frogpilot_toggles + self.starpilot_toggles = SimpleNamespace() + toggle = self.starpilot_toggles self.default_values = {key.decode(): self.params.get_default_value(key) for key in self.params.all_keys()} self.tuning_levels = {key.decode(): self.params.get_tuning_level(key) for key in self.params.all_keys()} branch = get_build_metadata().channel - self.development_branch = branch == "FrogPilot-Development" - self.release_branch = branch == "FrogPilot" - self.staging_branch = branch == "FrogPilot-Staging" - self.testing_branch = branch == "FrogPilot-Testing" - self.vetting_branch = branch == "FrogPilot-Vetting" + self.development_branch = branch == "StarPilot-Development" + self.release_branch = branch == "StarPilot" + self.staging_branch = branch == "StarPilot-Staging" + self.testing_branch = branch == "StarPilot-Testing" + self.vetting_branch = branch == "StarPilot-Vetting" self.frogs_go_moo = FROGS_GO_MOO_PATH.is_file() toggle.block_user = (self.development_branch or branch == "MAKE-PRS-HERE" or self.vetting_branch) and not self.frogs_go_moo @@ -325,7 +340,7 @@ class FrogPilotVariables: return "#FFFFFFFF" def get_value(self, key, cast=bool, condition=True, conversion=None, default=None, min=None, max=None): - if not condition or (self.frogpilot_toggles.tuning_level < self.tuning_levels.get(key, 0)): + if not condition or (self.starpilot_toggles.tuning_level < self.tuning_levels.get(key, 0)): if default is not None: value = default elif cast is bool: @@ -392,7 +407,7 @@ class FrogPilotVariables: self.params.put_float(stock_key, live_value) def update(self, holiday_theme="stock", started=False): - toggle = self.frogpilot_toggles + toggle = self.starpilot_toggles toggle.tuning_level = self.params.get("TuningLevel") if self.params.get_bool("TuningLevelConfirmed") else TUNING_LEVELS["ADVANCED"] fallback_platform = GM_CAR.CHEVROLET_BOLT_ACC_2022_2023 if HARDWARE.get_device_type() == "pc" else MOCK.MOCK @@ -411,11 +426,11 @@ class FrogPilotVariables: CarInterfaceBase.configure_torque_tune(car_platform, CP_builder.lateralTuning) CP = CP_builder.as_reader() - fpmsg_bytes = self.params.get("FrogPilotCarParams" if started else "FrogPilotCarParamsPersistent", block=started) + fpmsg_bytes = self.params.get("StarPilotCarParams" if started else "StarPilotCarParamsPersistent", block=started) if fpmsg_bytes: - FPCP = messaging.log_from_bytes(fpmsg_bytes, custom.FrogPilotCarParams) + FPCP = messaging.log_from_bytes(fpmsg_bytes, custom.StarPilotCarParams) else: - FPCP = interfaces[car_platform].get_frogpilot_params(car_platform, gen_empty_fingerprint(), [], CP, toggle) + FPCP = interfaces[car_platform].get_starpilot_params(car_platform, gen_empty_fingerprint(), [], CP, toggle) alpha_longitudinal = CP.alphaLongitudinalAvailable toggle.car_make = CP.brand @@ -427,9 +442,9 @@ class FrogPilotVariables: has_nnff = nnff_supported(toggle.car_model) toggle.has_pedal = CP.enableGasInterceptorDEPRECATED has_radar = not CP.radarUnavailable - toggle.has_sdsu = toggle.car_make == "toyota" and bool(FPCP.flags & ToyotaFrogPilotFlags.SMART_DSU.value) + toggle.has_sdsu = toggle.car_make == "toyota" and bool(FPCP.flags & ToyotaStarPilotFlags.SMART_DSU.value) has_sng = CP.autoResumeSng - toggle.has_zss = toggle.car_make == "toyota" and bool(FPCP.flags & ToyotaFrogPilotFlags.ZSS.value) + toggle.has_zss = toggle.car_make == "toyota" and bool(FPCP.flags & ToyotaStarPilotFlags.ZSS.value) is_angle_car = CP.steerControlType == car.CarParams.SteerControlType.angle latAccelFactor = CP.lateralTuning.torque.latAccelFactor toggle.lkas_allowed_for_aol = toggle.car_make == "hyundai" and bool(CP.flags & HyundaiFlags.CANFD or CP.flags & HyundaiFlags.HAS_LDA_BUTTON) @@ -910,5 +925,5 @@ class FrogPilotVariables: toggle.volt_sng = self.get_value("VoltSNG", condition=toggle.car_model == "CHEVROLET_VOLT") - process_frogpilot_toggles.cache_clear() - self.params_memory.remove("FrogPilotTogglesUpdated") + process_starpilot_toggles.cache_clear() + self.params_memory.remove("StarPilotTogglesUpdated") diff --git a/frogpilot/common/testing_grounds.py b/starpilot/common/testing_grounds.py similarity index 100% rename from frogpilot/common/testing_grounds.py rename to starpilot/common/testing_grounds.py diff --git a/frogpilot/controls/lib/conditional_experimental_mode.py b/starpilot/controls/lib/conditional_experimental_mode.py similarity index 75% rename from frogpilot/controls/lib/conditional_experimental_mode.py rename to starpilot/controls/lib/conditional_experimental_mode.py index 2ce9dfab..2874e69b 100644 --- a/frogpilot/controls/lib/conditional_experimental_mode.py +++ b/starpilot/controls/lib/conditional_experimental_mode.py @@ -6,7 +6,7 @@ from openpilot.common.filter_simple import FirstOrderFilter from openpilot.common.realtime import DT_MDL from openpilot.common.constants import CV -from openpilot.frogpilot.common.frogpilot_variables import CRUISING_SPEED, THRESHOLD, params_memory +from openpilot.starpilot.common.starpilot_variables import CRUISING_SPEED, THRESHOLD, params_memory CEStatus = { "OFF": 0, # Off @@ -64,8 +64,8 @@ class ConditionalExperimentalMode: """Get parameter value based on current speed using smooth interpolation between breakpoints [0, 35, 55, 70]""" return interp(speed_mph, [0, 35, 55, 70], param_array) - def __init__(self, FrogPilotPlanner): - self.frogpilot_planner = FrogPilotPlanner + def __init__(self, StarPilotPlanner): + self.starpilot_planner = StarPilotPlanner # Faster filters with hysteresis for better responsiveness self.curvature_filter = FirstOrderFilter(0, self.FILTER_TIME_CURVE, DT_MDL) @@ -80,18 +80,18 @@ class ConditionalExperimentalMode: self.mode_hold_until = 0.0 self.mode_false_since = 0.0 - def update(self, v_ego, sm, frogpilot_toggles): + def update(self, v_ego, sm, starpilot_toggles): now = time.monotonic() - if frogpilot_toggles.experimental_mode_via_press: + if starpilot_toggles.experimental_mode_via_press: self.status_value = params_memory.get_int("CEStatus") else: self.status_value = CEStatus["OFF"] if self.status_value not in (CEStatus["USER_DISABLED"], CEStatus["USER_OVERRIDDEN"]) and not sm["carState"].standstill: - self.update_conditions(v_ego, sm, frogpilot_toggles) + self.update_conditions(v_ego, sm, starpilot_toggles) - triggered = self.check_conditions(v_ego, sm, frogpilot_toggles) + triggered = self.check_conditions(v_ego, sm, starpilot_toggles) if triggered: self.mode_hold_until = now + self.CEM_TRANSITION_GUARD_TIME self.mode_false_since = 0.0 @@ -108,58 +108,58 @@ class ConditionalExperimentalMode: self.mode_hold_until = 0.0 self.mode_false_since = 0.0 self.experimental_mode = (self.status_value == CEStatus["USER_OVERRIDDEN"] or - (sm["carState"].standstill and self.experimental_mode and self.frogpilot_planner.model_stopped)) + (sm["carState"].standstill and self.experimental_mode and self.starpilot_planner.model_stopped)) self.stop_light_detected &= self.status_value not in (CEStatus["USER_DISABLED"], CEStatus["USER_OVERRIDDEN"]) self.stop_light_filter.x = 0 - def check_conditions(self, v_ego, sm, frogpilot_toggles): - below_speed = frogpilot_toggles.conditional_limit > v_ego >= 1 and not self.frogpilot_planner.frogpilot_following.following_lead - below_speed_with_lead = frogpilot_toggles.conditional_limit_lead > v_ego >= 1 and self.frogpilot_planner.frogpilot_following.following_lead + def check_conditions(self, v_ego, sm, starpilot_toggles): + below_speed = starpilot_toggles.conditional_limit > v_ego >= 1 and not self.starpilot_planner.starpilot_following.following_lead + below_speed_with_lead = starpilot_toggles.conditional_limit_lead > v_ego >= 1 and self.starpilot_planner.starpilot_following.following_lead if below_speed or below_speed_with_lead: self.status_value = CEStatus["SPEED"] return True - desired_lane = self.frogpilot_planner.lane_width_left if sm["carState"].leftBlinker else self.frogpilot_planner.lane_width_right - lane_available = desired_lane >= frogpilot_toggles.lane_detection_width or not frogpilot_toggles.conditional_signal_lane_detection - if v_ego < frogpilot_toggles.conditional_signal and (sm["carState"].leftBlinker or sm["carState"].rightBlinker) and not lane_available: + desired_lane = self.starpilot_planner.lane_width_left if sm["carState"].leftBlinker else self.starpilot_planner.lane_width_right + lane_available = desired_lane >= starpilot_toggles.lane_detection_width or not starpilot_toggles.conditional_signal_lane_detection + if v_ego < starpilot_toggles.conditional_signal and (sm["carState"].leftBlinker or sm["carState"].rightBlinker) and not lane_available: self.status_value = CEStatus["SIGNAL"] return True - if frogpilot_toggles.conditional_curves and self.curve_detected and (frogpilot_toggles.conditional_curves_lead or not self.frogpilot_planner.frogpilot_following.following_lead): + if starpilot_toggles.conditional_curves and self.curve_detected and (starpilot_toggles.conditional_curves_lead or not self.starpilot_planner.starpilot_following.following_lead): self.status_value = CEStatus["CURVATURE"] return True - if frogpilot_toggles.conditional_lead and self.slow_lead_detected and v_ego <= 35.31: + if starpilot_toggles.conditional_lead and self.slow_lead_detected and v_ego <= 35.31: self.status_value = CEStatus["LEAD"] return True - if frogpilot_toggles.conditional_model_stop_time != 0 and self.stop_light_detected: + if starpilot_toggles.conditional_model_stop_time != 0 and self.stop_light_detected: self.status_value = CEStatus["STOP_LIGHT"] return True - if self.frogpilot_planner.frogpilot_vcruise.slc.experimental_mode: + if self.starpilot_planner.starpilot_vcruise.slc.experimental_mode: self.status_value = CEStatus["SPEED_LIMIT"] return True return False - def update_conditions(self, v_ego, sm, frogpilot_toggles): - self.curve_detection(v_ego, frogpilot_toggles) - self.slow_lead(frogpilot_toggles, v_ego) - self.stop_sign_and_light(v_ego, sm, frogpilot_toggles.conditional_model_stop_time) + def update_conditions(self, v_ego, sm, starpilot_toggles): + self.curve_detection(v_ego, starpilot_toggles) + self.slow_lead(starpilot_toggles, v_ego) + self.stop_sign_and_light(v_ego, sm, starpilot_toggles.conditional_model_stop_time) - def curve_detection(self, v_ego, frogpilot_toggles): - self.curvature_filter.update(self.frogpilot_planner.road_curvature_detected or self.frogpilot_planner.driving_in_curve) + def curve_detection(self, v_ego, starpilot_toggles): + self.curvature_filter.update(self.starpilot_planner.road_curvature_detected or self.starpilot_planner.driving_in_curve) self.curve_detected = bool(self.curvature_filter.x >= THRESHOLD and v_ego > CRUISING_SPEED) - def slow_lead(self, frogpilot_toggles, v_ego): - if self.frogpilot_planner.tracking_lead: - slower_lead = frogpilot_toggles.conditional_slower_lead and self.frogpilot_planner.frogpilot_following.slower_lead - stopped_lead = frogpilot_toggles.conditional_stopped_lead and self.frogpilot_planner.lead_one.vLead < 1 + def slow_lead(self, starpilot_toggles, v_ego): + if self.starpilot_planner.tracking_lead: + slower_lead = starpilot_toggles.conditional_slower_lead and self.starpilot_planner.starpilot_following.slower_lead + stopped_lead = starpilot_toggles.conditional_stopped_lead and self.starpilot_planner.lead_one.vLead < 1 lead_threshold = scale_threshold(v_ego) # Adjust threshold based on lead probability for vision-only accuracy - lead_prob = getattr(self.frogpilot_planner.lead_one, 'modelProb', 1.0) + lead_prob = getattr(self.starpilot_planner.lead_one, 'modelProb', 1.0) adjusted_threshold = lead_threshold * (1.0 + 0.2 * (1.0 - lead_prob)) # Higher threshold for lower confidence self.slow_lead_filter.update(slower_lead or stopped_lead) @@ -169,7 +169,7 @@ class ConditionalExperimentalMode: self.slow_lead_detected = False def stop_sign_and_light(self, v_ego, sm, model_time): - if not sm["frogpilotCarState"].trafficModeEnabled: + if not sm["starpilotCarState"].trafficModeEnabled: speed_mph = v_ego * CV.MS_TO_MPH # Convert m/s to mph # Interp for smooth scaling in 35-45 mph @@ -205,10 +205,10 @@ class ConditionalExperimentalMode: if cap_factor > 0: adjusted_model_time = min(adjusted_model_time, self.LIGHT_MAX_TIME * cap_factor + model_time * (1 - cap_factor)) # Gradual cap - model_stopping = self.frogpilot_planner.model_length < v_ego * adjusted_model_time + model_stopping = self.starpilot_planner.model_length < v_ego * adjusted_model_time - self.stop_light_filter.update(self.frogpilot_planner.model_stopped or model_stopping) - self.stop_light_detected = bool(self.stop_light_filter.x >= THRESHOLD**2 and not self.frogpilot_planner.tracking_lead) + self.stop_light_filter.update(self.starpilot_planner.model_stopped or model_stopping) + self.stop_light_detected = bool(self.stop_light_filter.x >= THRESHOLD**2 and not self.starpilot_planner.tracking_lead) else: self.stop_light_filter.x = 0 self.stop_light_detected = False diff --git a/frogpilot/controls/lib/curve_speed_controller.py b/starpilot/controls/lib/curve_speed_controller.py similarity index 76% rename from frogpilot/controls/lib/curve_speed_controller.py rename to starpilot/controls/lib/curve_speed_controller.py index 0c3f1e9a..93195cac 100644 --- a/frogpilot/controls/lib/curve_speed_controller.py +++ b/starpilot/controls/lib/curve_speed_controller.py @@ -5,7 +5,7 @@ import numpy as np from openpilot.common.realtime import DT_MDL -from openpilot.frogpilot.common.frogpilot_variables import CRUISING_SPEED, DEFAULT_LATERAL_ACCELERATION, PLANNER_TIME +from openpilot.starpilot.common.starpilot_variables import CRUISING_SPEED, DEFAULT_LATERAL_ACCELERATION, PLANNER_TIME CALIBRATION_PROGRESS_THRESHOLD = 10 / DT_MDL MAX_CURVATURE = 0.1 @@ -15,15 +15,15 @@ ROUNDING_PRECISION = 3 STEP = 0.001 class CurveSpeedController: - def __init__(self, FrogPilotVCruise): - self.frogpilot_planner = FrogPilotVCruise.frogpilot_planner + def __init__(self, StarPilotVCruise): + self.starpilot_planner = StarPilotVCruise.starpilot_planner self.enable_training = False self.target_set = False self.training_timer = 0 - curvature_data_raw = self.frogpilot_planner.params.get("CurvatureData", encoding="utf-8") + curvature_data_raw = self.starpilot_planner.params.get("CurvatureData", encoding="utf-8") try: self.curvature_data = json.loads(curvature_data_raw or "{}") except (TypeError, ValueError): @@ -44,15 +44,15 @@ class CurveSpeedController: def log_data(self, long_control_active, v_ego, sm): self.enable_training = v_ego > CRUISING_SPEED - self.enable_training &= not self.frogpilot_planner.tracking_lead + self.enable_training &= not self.starpilot_planner.tracking_lead self.enable_training &= not long_control_active if self.enable_training: self.training_timer += DT_MDL - if self.training_timer >= PLANNER_TIME and self.frogpilot_planner.driving_in_curve and not (sm["carState"].leftBlinker or sm["carState"].rightBlinker): - lateral_acceleration = abs(self.frogpilot_planner.lateral_acceleration) - road_curvature = abs(round(self.frogpilot_planner.road_curvature, ROUNDING_PRECISION)) + if self.training_timer >= PLANNER_TIME and self.starpilot_planner.driving_in_curve and not (sm["carState"].leftBlinker or sm["carState"].rightBlinker): + lateral_acceleration = abs(self.starpilot_planner.lateral_acceleration) + road_curvature = abs(round(self.starpilot_planner.road_curvature, ROUNDING_PRECISION)) key = str(road_curvature) if key in self.curvature_data: @@ -83,8 +83,8 @@ class CurveSpeedController: total_weight += self.curvature_weights[key] - self.frogpilot_planner.params.put_nonblocking("CalibrationProgress", float(min((progress / total_weight) * 100, 100.0))) - self.frogpilot_planner.params.put_nonblocking("CurvatureData", self.curvature_data) + self.starpilot_planner.params.put_nonblocking("CalibrationProgress", float(min((progress / total_weight) * 100, 100.0))) + self.starpilot_planner.params.put_nonblocking("CurvatureData", self.curvature_data) self.update_lateral_acceleration() self.training_timer = 0 @@ -99,16 +99,16 @@ class CurveSpeedController: else: self.lateral_acceleration = DEFAULT_LATERAL_ACCELERATION - self.frogpilot_planner.params.put_nonblocking("CalibratedLateralAcceleration", self.lateral_acceleration) + self.starpilot_planner.params.put_nonblocking("CalibratedLateralAcceleration", self.lateral_acceleration) def update_target(self, v_ego): lateral_acceleration = self.lateral_acceleration - if self.frogpilot_planner.frogpilot_weather.weather_id != 0: - lateral_acceleration -= self.lateral_acceleration * self.frogpilot_planner.frogpilot_weather.reduce_lateral_acceleration + if self.starpilot_planner.starpilot_weather.weather_id != 0: + lateral_acceleration -= self.lateral_acceleration * self.starpilot_planner.starpilot_weather.reduce_lateral_acceleration if self.target_set: - csc_speed = (lateral_acceleration / abs(self.frogpilot_planner.road_curvature))**0.5 - decel_rate = (v_ego - csc_speed) / self.frogpilot_planner.time_to_curve + csc_speed = (lateral_acceleration / abs(self.starpilot_planner.road_curvature))**0.5 + decel_rate = (v_ego - csc_speed) / self.starpilot_planner.time_to_curve self.target -= decel_rate * DT_MDL self.target = np.clip(self.target, CRUISING_SPEED, csc_speed) diff --git a/frogpilot/controls/lib/neural_network_feedforward.py b/starpilot/controls/lib/neural_network_feedforward.py similarity index 98% rename from frogpilot/controls/lib/neural_network_feedforward.py rename to starpilot/controls/lib/neural_network_feedforward.py index ff07a7dd..207356da 100644 --- a/frogpilot/controls/lib/neural_network_feedforward.py +++ b/starpilot/controls/lib/neural_network_feedforward.py @@ -17,7 +17,7 @@ from openpilot.selfdrive.controls.lib.drive_helpers import CONTROL_N from openpilot.selfdrive.controls.lib.latcontrol import LatControl from openpilot.selfdrive.modeld.constants import ModelConstants -from openpilot.frogpilot.common.frogpilot_variables import NNFF_MODELS_PATH, get_nnff_model_files, get_nnff_substitutes +from openpilot.starpilot.common.starpilot_variables import NNFF_MODELS_PATH, get_nnff_model_files, get_nnff_substitutes # At higher speeds (25+mph) we can assume: # Lateral acceleration achieved by a specific car correlates to @@ -224,7 +224,7 @@ class LatControlNNFF(LatControl): self.torque_params.latAccelOffset = latAccelOffset self.torque_params.friction = friction - def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvature, curvature_limited, lat_delay, calibrated_pose, model_data, frogpilot_toggles): + def update(self, active, CS, VM, params, steer_limited_by_safety, desired_curvature, curvature_limited, lat_delay, calibrated_pose, model_data, starpilot_toggles): pid_log = log.ControlsState.LateralTorqueState.new_message() if not active: output_torque = 0.0 @@ -244,7 +244,7 @@ class LatControlNNFF(LatControl): setpoint = desired_lateral_accel + low_speed_factor * desired_curvature measurement = actual_lateral_accel + low_speed_factor * actual_curvature gravity_adjusted_lateral_accel = desired_lateral_accel - roll_compensation - if self.nnff_loaded and frogpilot_toggles.nnff or frogpilot_toggles.nnff_lite: + if self.nnff_loaded and starpilot_toggles.nnff or starpilot_toggles.nnff_lite: actual_curvature_rate = -VM.calc_curvature(math.radians(CS.steeringRateDeg), CS.vEgo, 0.0) actual_lateral_jerk = actual_curvature_rate * CS.vEgo ** 2 @@ -271,7 +271,7 @@ class LatControlNNFF(LatControl): lateral_jerk_measurement = 0 lookahead_lateral_jerk = 0 - if self.nnff_loaded and model_good and frogpilot_toggles.nnff: + if self.nnff_loaded and model_good and starpilot_toggles.nnff: # update past data pitch = 0 roll = params.roll diff --git a/frogpilot/controls/lib/speed_limit_controller.py b/starpilot/controls/lib/speed_limit_controller.py similarity index 81% rename from frogpilot/controls/lib/speed_limit_controller.py rename to starpilot/controls/lib/speed_limit_controller.py index a54c81c7..db2e75f5 100644 --- a/frogpilot/controls/lib/speed_limit_controller.py +++ b/starpilot/controls/lib/speed_limit_controller.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# PFEIFER - SLC - Modified by FrogAi for FrogPilot +# PFEIFER - SLC - Modified by FrogAi for StarPilot import calendar import json import numpy as np @@ -10,7 +10,7 @@ from concurrent.futures import ThreadPoolExecutor from openpilot.common.constants import CV from openpilot.common.realtime import DT_MDL -from openpilot.frogpilot.common.frogpilot_utilities import calculate_bearing_offset, is_url_pingable +from openpilot.starpilot.common.starpilot_utilities import calculate_bearing_offset, is_url_pingable FREE_MAPBOX_REQUESTS = 100_000 @@ -35,9 +35,9 @@ OFFSET_MAP_METRIC = [ ] class SpeedLimitController: - def __init__(self, FrogPilotVCruise): - self.frogpilot_planner = FrogPilotVCruise.frogpilot_planner - self.frogpilot_toggles = None + def __init__(self, StarPilotVCruise): + self.starpilot_planner = StarPilotVCruise.starpilot_planner + self.starpilot_toggles = None self.calling_mapbox = False self.override_slc = False @@ -55,7 +55,7 @@ class SpeedLimitController: self.previous_source = "None" self.source = "None" - mapbox_requests_raw = self.frogpilot_planner.params.get("MapBoxRequests", encoding="utf-8") + mapbox_requests_raw = self.starpilot_planner.params.get("MapBoxRequests", encoding="utf-8") try: self.mapbox_requests = json.loads(mapbox_requests_raw or "{}") except (TypeError, ValueError): @@ -64,29 +64,29 @@ class SpeedLimitController: self.mapbox_requests.setdefault("max_requests", FREE_MAPBOX_REQUESTS - (28 * 100)) self.mapbox_host = "https://api.mapbox.com" - self.mapbox_token = self.frogpilot_planner.params.get("MapboxSecretKey", encoding="utf-8") + self.mapbox_token = self.starpilot_planner.params.get("MapboxSecretKey", encoding="utf-8") - self.previous_target = self.frogpilot_planner.params.get_float("PreviousSpeedLimit") + self.previous_target = self.starpilot_planner.params.get_float("PreviousSpeedLimit") self.executor = ThreadPoolExecutor(max_workers=1) self.session = requests.Session() self.session.headers.update({"Accept-Language": "en"}) - self.session.headers.update({"User-Agent": "frogpilot-mapbox-speed-limit-retriever/1.0 (https://github.com/FrogAi/FrogPilot)"}) + self.session.headers.update({"User-Agent": "starpilot-mapbox-speed-limit-retriever/1.0 (https://github.com/FrogAi/StarPilot)"}) @property def experimental_mode(self): - return self.target == 0 and bool(getattr(self.frogpilot_toggles, "slc_fallback_experimental_mode", False)) + return self.target == 0 and bool(getattr(self.starpilot_toggles, "slc_fallback_experimental_mode", False)) @property def offset(self): - if self.frogpilot_toggles is None: + if self.starpilot_toggles is None: return 0 - offset_map = OFFSET_MAP_METRIC if self.frogpilot_toggles.is_metric else OFFSET_MAP_IMPERIAL - return next((getattr(self.frogpilot_toggles, offset) for low, high, offset in offset_map if low < self.target < high), 0) + offset_map = OFFSET_MAP_METRIC if self.starpilot_toggles.is_metric else OFFSET_MAP_IMPERIAL + return next((getattr(self.starpilot_toggles, offset) for low, high, offset in offset_map if low < self.target < high), 0) def get_mapbox_speed_limit(self, now, time_validated, v_ego, sm): - if not self.frogpilot_planner.gps_valid or not self.mapbox_token or (sm["carState"].steeringAngleDeg - sm["liveParameters"].angleOffsetDeg) >= 45: + if not self.starpilot_planner.gps_valid or not self.mapbox_token or (sm["carState"].steeringAngleDeg - sm["liveParameters"].angleOffsetDeg) >= 45: self.mapbox_limit = 0 self.segment_distance = 0 return @@ -122,11 +122,11 @@ class SpeedLimitController: }) self.mapbox_requests["total_requests"] += 1 - self.frogpilot_planner.params.put_nonblocking("MapBoxRequests", self.mapbox_requests) + self.starpilot_planner.params.put_nonblocking("MapBoxRequests", self.mapbox_requests) - current_bearing = self.frogpilot_planner.gps_position.get("bearing") - current_latitude = self.frogpilot_planner.gps_position.get("latitude") - current_longitude = self.frogpilot_planner.gps_position.get("longitude") + current_bearing = self.starpilot_planner.gps_position.get("bearing") + current_latitude = self.starpilot_planner.gps_position.get("latitude") + current_longitude = self.starpilot_planner.gps_position.get("longitude") future_latitude, future_longitude = calculate_bearing_offset(current_latitude, current_longitude, current_bearing, v_ego) @@ -209,8 +209,8 @@ class SpeedLimitController: def handle_limit_change(self, desired_source, desired_target, sm): self.speed_limit_changed_timer += DT_MDL - speed_limit_accepted = (sm["frogpilotCarState"].accelPressed and sm["carControl"].longActive) or self.frogpilot_planner.params_memory.get_bool("SpeedLimitAccepted") - speed_limit_denied = sm["frogpilotCarState"].decelPressed or (self.speed_limit_changed_timer >= 30) + speed_limit_accepted = (sm["starpilotCarState"].accelPressed and sm["carControl"].longActive) or self.starpilot_planner.params_memory.get_bool("SpeedLimitAccepted") + speed_limit_denied = sm["starpilotCarState"].decelPressed or (self.speed_limit_changed_timer >= 30) if speed_limit_accepted: self.overridden_speed = 0 @@ -218,7 +218,7 @@ class SpeedLimitController: self.source = desired_source self.target = desired_target - self.frogpilot_planner.params_memory.remove("SpeedLimitAccepted") + self.starpilot_planner.params_memory.remove("SpeedLimitAccepted") elif speed_limit_denied: self.denied_target = desired_target @@ -226,11 +226,11 @@ class SpeedLimitController: self.previous_source = desired_source self.previous_target = desired_target - elif desired_target < self.target and not self.frogpilot_toggles.speed_limit_confirmation_lower: + elif desired_target < self.target and not self.starpilot_toggles.speed_limit_confirmation_lower: self.source = desired_source self.target = desired_target - elif desired_target > self.target and not self.frogpilot_toggles.speed_limit_confirmation_higher: + elif desired_target > self.target and not self.starpilot_toggles.speed_limit_confirmation_higher: self.source = desired_source self.target = desired_target @@ -244,7 +244,7 @@ class SpeedLimitController: self.previous_source = self.source self.previous_target = self.target - self.frogpilot_planner.params.put_nonblocking("PreviousSpeedLimit", self.target) + self.starpilot_planner.params.put_nonblocking("PreviousSpeedLimit", self.target) def update_limits(self, dashboard_speed_limit, now, time_validated, v_cruise, v_ego, sm): self.update_map_speed_limit(v_ego, sm) @@ -255,18 +255,18 @@ class SpeedLimitController: } filtered_limits = {source: limit for source, limit in limits.items() if limit >= 1} - if self.frogpilot_toggles.speed_limit_priority_highest: + if self.starpilot_toggles.speed_limit_priority_highest: desired_source = max(filtered_limits, key=filtered_limits.get, default="None") desired_target = filtered_limits.get(desired_source, 0) - elif self.frogpilot_toggles.speed_limit_priority_lowest: + elif self.starpilot_toggles.speed_limit_priority_lowest: desired_source = min(filtered_limits, key=filtered_limits.get, default="None") desired_target = filtered_limits.get(desired_source, 0) elif filtered_limits: for priority in [ - self.frogpilot_toggles.speed_limit_priority1, - self.frogpilot_toggles.speed_limit_priority2 + self.starpilot_toggles.speed_limit_priority1, + self.starpilot_toggles.speed_limit_priority2 ]: if priority in filtered_limits: desired_source = priority @@ -281,7 +281,7 @@ class SpeedLimitController: desired_target = 0 if desired_target == 0 or self.target == 0: - if self.mapbox_requests["total_requests"] < self.mapbox_requests["max_requests"] and self.frogpilot_toggles.slc_mapbox_filler: + if self.mapbox_requests["total_requests"] < self.mapbox_requests["max_requests"] and self.starpilot_toggles.slc_mapbox_filler: self.get_mapbox_speed_limit(now, time_validated, v_ego, sm) if self.mapbox_limit >= 1: @@ -289,13 +289,13 @@ class SpeedLimitController: desired_target = self.mapbox_limit if desired_target == 0 or self.target == 0: - if self.denied_target != self.previous_target > 0 and self.frogpilot_toggles.slc_fallback_previous_speed_limit: + if self.denied_target != self.previous_target > 0 and self.starpilot_toggles.slc_fallback_previous_speed_limit: desired_source = self.previous_source desired_target = self.previous_target self.target = desired_target - elif sm["selfdriveState"].enabled and self.frogpilot_toggles.slc_fallback_set_speed: + elif sm["selfdriveState"].enabled and self.starpilot_toggles.slc_fallback_set_speed: desired_source = "None" desired_target = v_cruise else: @@ -316,9 +316,9 @@ class SpeedLimitController: if self.next_speed_limit > 0: if self.map_speed_limit < self.next_speed_limit: - max_lookahead = self.frogpilot_toggles.map_speed_lookahead_higher * v_ego + max_lookahead = self.starpilot_toggles.map_speed_lookahead_higher * v_ego elif self.map_speed_limit > self.next_speed_limit: - max_lookahead = self.frogpilot_toggles.map_speed_lookahead_lower * v_ego + max_lookahead = self.starpilot_toggles.map_speed_lookahead_lower * v_ego else: max_lookahead = 0 @@ -331,11 +331,11 @@ class SpeedLimitController: self.override_slc &= sm["selfdriveState"].enabled if self.override_slc: - if self.frogpilot_toggles.speed_limit_controller_override_manual: + if self.starpilot_toggles.speed_limit_controller_override_manual: if sm["carState"].gasPressed: self.overridden_speed = max(v_ego + v_ego_diff, self.overridden_speed) self.overridden_speed = float(np.clip(self.overridden_speed, self.target + self.offset, v_cruise + v_cruise_diff)) - elif self.frogpilot_toggles.speed_limit_controller_override_set_speed: + elif self.starpilot_toggles.speed_limit_controller_override_set_speed: self.overridden_speed = v_cruise + v_cruise_diff self.source = "None" diff --git a/frogpilot/controls/lib/frogpilot_acceleration.py b/starpilot/controls/lib/starpilot_acceleration.py similarity index 79% rename from frogpilot/controls/lib/frogpilot_acceleration.py rename to starpilot/controls/lib/starpilot_acceleration.py index bcebf682..c3261287 100644 --- a/frogpilot/controls/lib/frogpilot_acceleration.py +++ b/starpilot/controls/lib/starpilot_acceleration.py @@ -4,7 +4,7 @@ import numpy as np from opendbc.car.interfaces import ACCEL_MIN from openpilot.selfdrive.controls.lib.longitudinal_planner import get_max_accel -from openpilot.frogpilot.common.frogpilot_variables import CITY_SPEED_LIMIT +from openpilot.starpilot.common.starpilot_variables import CITY_SPEED_LIMIT def cubic_interp(x, xp, fp): """Cubic interpolation using NumPy's native operations for speed.""" @@ -110,57 +110,57 @@ def get_max_allowed_accel(v_ego, ev_tuning=True, truck_tuning=False): return float(akima_interp(v_ego, A_CRUISE_MAX_BP_CUSTOM, A_CRUISE_MAX_VALS_SPORT_PLUS_TRUCK)) return float(akima_interp(v_ego, [0., 5., 20.], [4.0, 4.0, 2.0])) # ISO 15622:2018 -class FrogPilotAcceleration: - def __init__(self, FrogPilotPlanner): - self.frogpilot_planner = FrogPilotPlanner +class StarPilotAcceleration: + def __init__(self, StarPilotPlanner): + self.starpilot_planner = StarPilotPlanner self.max_accel = 0 self.min_accel = 0 - def update(self, v_ego, sm, frogpilot_toggles): - eco_gear = sm["frogpilotCarState"].ecoGear - sport_gear = sm["frogpilotCarState"].sportGear - ev_tuning = getattr(frogpilot_toggles, "ev_tuning", True) - truck_tuning = getattr(frogpilot_toggles, "truck_tuning", False) + def update(self, v_ego, sm, starpilot_toggles): + eco_gear = sm["starpilotCarState"].ecoGear + sport_gear = sm["starpilotCarState"].sportGear + ev_tuning = getattr(starpilot_toggles, "ev_tuning", True) + truck_tuning = getattr(starpilot_toggles, "truck_tuning", False) - if sm["frogpilotCarState"].trafficModeEnabled: + if sm["starpilotCarState"].trafficModeEnabled: self.max_accel = get_max_accel_standard(v_ego, ev_tuning, truck_tuning) - elif frogpilot_toggles.map_acceleration and (eco_gear or sport_gear): + elif starpilot_toggles.map_acceleration and (eco_gear or sport_gear): if eco_gear: self.max_accel = get_max_accel_eco(v_ego, ev_tuning, truck_tuning) else: - if frogpilot_toggles.acceleration_profile == ACCELERATION_PROFILES["SPORT"]: + if starpilot_toggles.acceleration_profile == ACCELERATION_PROFILES["SPORT"]: self.max_accel = get_max_accel_sport(v_ego, ev_tuning, truck_tuning) else: self.max_accel = get_max_allowed_accel(v_ego, ev_tuning, truck_tuning) else: - if frogpilot_toggles.acceleration_profile == ACCELERATION_PROFILES["ECO"]: + if starpilot_toggles.acceleration_profile == ACCELERATION_PROFILES["ECO"]: self.max_accel = get_max_accel_eco(v_ego, ev_tuning, truck_tuning) - elif frogpilot_toggles.acceleration_profile == ACCELERATION_PROFILES["SPORT"]: + elif starpilot_toggles.acceleration_profile == ACCELERATION_PROFILES["SPORT"]: self.max_accel = get_max_accel_sport(v_ego, ev_tuning, truck_tuning) - elif frogpilot_toggles.acceleration_profile == ACCELERATION_PROFILES["SPORT_PLUS"]: + elif starpilot_toggles.acceleration_profile == ACCELERATION_PROFILES["SPORT_PLUS"]: self.max_accel = get_max_allowed_accel(v_ego, ev_tuning, truck_tuning) else: self.max_accel = get_max_accel_standard(v_ego, ev_tuning, truck_tuning) - if frogpilot_toggles.human_acceleration: - self.max_accel = min(get_max_accel_low_speeds(self.max_accel, self.frogpilot_planner.v_cruise), self.max_accel) - self.max_accel = min(get_max_accel_ramp_off(self.max_accel, self.frogpilot_planner.v_cruise, v_ego), self.max_accel) + if starpilot_toggles.human_acceleration: + self.max_accel = min(get_max_accel_low_speeds(self.max_accel, self.starpilot_planner.v_cruise), self.max_accel) + self.max_accel = min(get_max_accel_ramp_off(self.max_accel, self.starpilot_planner.v_cruise, v_ego), self.max_accel) - if self.frogpilot_planner.frogpilot_weather.weather_id != 0: - self.max_accel -= self.max_accel * self.frogpilot_planner.frogpilot_weather.reduce_acceleration + if self.starpilot_planner.starpilot_weather.weather_id != 0: + self.max_accel -= self.max_accel * self.starpilot_planner.starpilot_weather.reduce_acceleration - if sm["frogpilotCarState"].forceCoast: + if sm["starpilotCarState"].forceCoast: self.min_accel = A_CRUISE_MIN_ECO - elif frogpilot_toggles.map_deceleration and (eco_gear or sport_gear): + elif starpilot_toggles.map_deceleration and (eco_gear or sport_gear): if eco_gear: self.min_accel = A_CRUISE_MIN_ECO else: self.min_accel = A_CRUISE_MIN_SPORT else: - if frogpilot_toggles.deceleration_profile == DECELERATION_PROFILES["ECO"]: + if starpilot_toggles.deceleration_profile == DECELERATION_PROFILES["ECO"]: self.min_accel = A_CRUISE_MIN_ECO - elif frogpilot_toggles.deceleration_profile == DECELERATION_PROFILES["SPORT"]: + elif starpilot_toggles.deceleration_profile == DECELERATION_PROFILES["SPORT"]: self.min_accel = A_CRUISE_MIN_SPORT else: self.min_accel = ACCEL_MIN diff --git a/frogpilot/controls/lib/frogpilot_events.py b/starpilot/controls/lib/starpilot_events.py similarity index 53% rename from frogpilot/controls/lib/frogpilot_events.py rename to starpilot/controls/lib/starpilot_events.py index 2b5f3599..94c48256 100644 --- a/frogpilot/controls/lib/frogpilot_events.py +++ b/starpilot/controls/lib/starpilot_events.py @@ -4,23 +4,23 @@ import random from openpilot.common.constants import ACCELERATION_DUE_TO_GRAVITY, CV from openpilot.common.realtime import DT_MDL from openpilot.selfdrive.controls.lib.desire_helper import TurnDirection -from openpilot.selfdrive.selfdrived.events import ET, EVENT_NAME, FROGPILOT_EVENT_NAME, EventName, FrogPilotEventName, Events +from openpilot.selfdrive.selfdrived.events import ET, EVENT_NAME, STARPILOT_EVENT_NAME, EventName, StarPilotEventName, Events -from openpilot.frogpilot.common.frogpilot_variables import CRUISING_SPEED, NON_DRIVING_GEARS +from openpilot.starpilot.common.starpilot_variables import CRUISING_SPEED, NON_DRIVING_GEARS DEJA_VU_G_FORCE = 0.75 RANDOM_EVENTS_CHANCE = 0.01 * DT_MDL RANDOM_EVENTS_LENGTH = 5 -RANDOM_EVENT_START = FrogPilotEventName.accel30 -RANDOM_EVENT_END = FrogPilotEventName.youveGotMail +RANDOM_EVENT_START = StarPilotEventName.accel30 +RANDOM_EVENT_END = StarPilotEventName.youveGotMail -class FrogPilotEvents: - def __init__(self, FrogPilotPlanner, error_log, ThemeManager): - self.frogpilot_planner = FrogPilotPlanner +class StarPilotEvents: + def __init__(self, StarPilotPlanner, error_log, ThemeManager): + self.starpilot_planner = StarPilotPlanner self.theme_manager = ThemeManager - self.events = Events(frogpilot=True) + self.events = Events(starpilot=True) self.always_on_lateral_enabled_previously = False self.previous_traffic_mode = False @@ -36,11 +36,11 @@ class FrogPilotEvents: self.error_log = error_log - def update(self, long_control_active, v_cruise, sm, frogpilot_toggles): + def update(self, long_control_active, v_cruise, sm, starpilot_toggles): current_alert = sm["selfdriveState"].alertType - current_frogpilot_alert = sm["selfdriveState"].alertType + current_starpilot_alert = sm["selfdriveState"].alertType - alerts_empty = all(sm[state].alertText1 == "" and sm[state].alertText2 == "" for state in ["selfdriveState", "frogpilotSelfdriveState"]) + alerts_empty = all(sm[state].alertText1 == "" and sm[state].alertText2 == "" for state in ["selfdriveState", "starpilotSelfdriveState"]) self.events.clear() @@ -51,78 +51,78 @@ class FrogPilotEvents: else: self.max_acceleration = 0 - if self.frogpilot_planner.frogpilot_vcruise.forcing_stop: - self.events.add(FrogPilotEventName.forcingStop) + if self.starpilot_planner.starpilot_vcruise.forcing_stop: + self.events.add(StarPilotEventName.forcingStop) - if not self.frogpilot_planner.tracking_lead and sm["carState"].standstill and sm["carState"].gearShifter not in NON_DRIVING_GEARS: - if not self.frogpilot_planner.model_stopped and self.stopped_for_light and frogpilot_toggles.green_light_alert: - self.events.add(FrogPilotEventName.greenLight) + if not self.starpilot_planner.tracking_lead and sm["carState"].standstill and sm["carState"].gearShifter not in NON_DRIVING_GEARS: + if not self.starpilot_planner.model_stopped and self.stopped_for_light and starpilot_toggles.green_light_alert: + self.events.add(StarPilotEventName.greenLight) - self.stopped_for_light = self.frogpilot_planner.frogpilot_cem.stop_light_detected + self.stopped_for_light = self.starpilot_planner.starpilot_cem.stop_light_detected else: self.stopped_for_light = False - if "holidayActive" not in self.played_events and self.startup_seen and alerts_empty and len(self.events) == 0 and frogpilot_toggles.current_holiday_theme != "stock": - self.events.add(FrogPilotEventName.holidayActive) + if "holidayActive" not in self.played_events and self.startup_seen and alerts_empty and len(self.events) == 0 and starpilot_toggles.current_holiday_theme != "stock": + self.events.add(StarPilotEventName.holidayActive) - if self.frogpilot_planner.tracking_lead and sm["carState"].standstill and sm["carState"].gearShifter not in NON_DRIVING_GEARS: + if self.starpilot_planner.tracking_lead and sm["carState"].standstill and sm["carState"].gearShifter not in NON_DRIVING_GEARS: if self.tracked_lead_distance == 0: - self.tracked_lead_distance = self.frogpilot_planner.lead_one.dRel + self.tracked_lead_distance = self.starpilot_planner.lead_one.dRel - lead_departing = self.frogpilot_planner.lead_one.dRel - self.tracked_lead_distance >= 1 - lead_departing &= self.frogpilot_planner.lead_one.vLead >= 1 + lead_departing = self.starpilot_planner.lead_one.dRel - self.tracked_lead_distance >= 1 + lead_departing &= self.starpilot_planner.lead_one.vLead >= 1 - if lead_departing and frogpilot_toggles.lead_departing_alert: - self.events.add(FrogPilotEventName.leadDeparting) + if lead_departing and starpilot_toggles.lead_departing_alert: + self.events.add(StarPilotEventName.leadDeparting) else: self.tracked_lead_distance = 0 - if "nnffLoaded" not in self.played_events and self.startup_seen and alerts_empty and len(self.events) == 0 and self.frogpilot_planner.params.get("NNFFModelName") is not None and frogpilot_toggles.nnff: - self.events.add(FrogPilotEventName.nnffLoaded) + if "nnffLoaded" not in self.played_events and self.startup_seen and alerts_empty and len(self.events) == 0 and self.starpilot_planner.params.get("NNFFModelName") is not None and starpilot_toggles.nnff: + self.events.add(StarPilotEventName.nnffLoaded) if self.random_event_playing: self.random_event_timer += DT_MDL if self.random_event_timer >= RANDOM_EVENTS_LENGTH: - self.theme_manager.update_wheel_image(frogpilot_toggles.wheel_image) - self.frogpilot_planner.params_memory.put_bool("UpdateWheelImage", True) + self.theme_manager.update_wheel_image(starpilot_toggles.wheel_image) + self.starpilot_planner.params_memory.put_bool("UpdateWheelImage", True) self.random_event_playing = False self.random_event_timer = 0 - if not self.random_event_playing and frogpilot_toggles.random_events: + if not self.random_event_playing and starpilot_toggles.random_events: if "accel30" not in self.played_events and 3.5 > self.max_acceleration >= 3.0 and acceleration < 1.5: - self.events.add(FrogPilotEventName.accel30) + self.events.add(StarPilotEventName.accel30) self.theme_manager.update_wheel_image("accel30", random_event=True) - self.frogpilot_planner.params_memory.put_bool("UpdateWheelImage", True) + self.starpilot_planner.params_memory.put_bool("UpdateWheelImage", True) self.max_acceleration = 0 elif "accel35" not in self.played_events and 4.0 > self.max_acceleration >= 3.5 and acceleration < 1.5: - self.events.add(FrogPilotEventName.accel35) + self.events.add(StarPilotEventName.accel35) self.theme_manager.update_wheel_image("accel35", random_event=True) - self.frogpilot_planner.params_memory.put_bool("UpdateWheelImage", True) + self.starpilot_planner.params_memory.put_bool("UpdateWheelImage", True) self.max_acceleration = 0 elif "accel40" not in self.played_events and self.max_acceleration >= 4.0 and acceleration < 1.5: - self.events.add(FrogPilotEventName.accel40) + self.events.add(StarPilotEventName.accel40) self.theme_manager.update_wheel_image("accel40", random_event=True) - self.frogpilot_planner.params_memory.put_bool("UpdateWheelImage", True) + self.starpilot_planner.params_memory.put_bool("UpdateWheelImage", True) self.max_acceleration = 0 if "dejaVuCurve" not in self.played_events and sm["carState"].vEgo > CRUISING_SPEED: - if self.frogpilot_planner.lateral_acceleration >= DEJA_VU_G_FORCE * ACCELERATION_DUE_TO_GRAVITY: - self.events.add(FrogPilotEventName.dejaVuCurve) + if self.starpilot_planner.lateral_acceleration >= DEJA_VU_G_FORCE * ACCELERATION_DUE_TO_GRAVITY: + self.events.add(StarPilotEventName.dejaVuCurve) - if "hal9000" not in self.played_events and (ET.NO_ENTRY in current_alert or ET.NO_ENTRY in current_frogpilot_alert): - self.events.add(FrogPilotEventName.hal9000) + if "hal9000" not in self.played_events and (ET.NO_ENTRY in current_alert or ET.NO_ENTRY in current_starpilot_alert): + self.events.add(StarPilotEventName.hal9000) - if f"{EVENT_NAME[EventName.steerSaturated]}/" in current_alert or f"{FROGPILOT_EVENT_NAME[FrogPilotEventName.goatSteerSaturated]}/" in current_frogpilot_alert: + if f"{EVENT_NAME[EventName.steerSaturated]}/" in current_alert or f"{STARPILOT_EVENT_NAME[StarPilotEventName.goatSteerSaturated]}/" in current_starpilot_alert: event_choices = [] if "firefoxSteerSaturated" not in self.played_events: event_choices.append("firefoxSteerSaturated") @@ -135,23 +135,23 @@ class FrogPilotEvents: event_choice = random.choice(event_choices) if event_choice == "firefoxSteerSaturated": - self.events.add(FrogPilotEventName.firefoxSteerSaturated) + self.events.add(StarPilotEventName.firefoxSteerSaturated) self.theme_manager.update_wheel_image("firefoxSteerSaturated", random_event=True) - self.frogpilot_planner.params_memory.put_bool("UpdateWheelImage", True) + self.starpilot_planner.params_memory.put_bool("UpdateWheelImage", True) elif event_choice == "goatSteerSaturated": - self.events.add(FrogPilotEventName.goatSteerSaturated) + self.events.add(StarPilotEventName.goatSteerSaturated) self.theme_manager.update_wheel_image("goatSteerSaturated", random_event=True) - self.frogpilot_planner.params_memory.put_bool("UpdateWheelImage", True) + self.starpilot_planner.params_memory.put_bool("UpdateWheelImage", True) elif event_choice == "thisIsFineSteerSaturated": - self.events.add(FrogPilotEventName.thisIsFineSteerSaturated) + self.events.add(StarPilotEventName.thisIsFineSteerSaturated) self.theme_manager.update_wheel_image("thisIsFineSteerSaturated", random_event=True) - self.frogpilot_planner.params_memory.put_bool("UpdateWheelImage", True) + self.starpilot_planner.params_memory.put_bool("UpdateWheelImage", True) - if "vCruise69" not in self.played_events and 70 > max(sm["carState"].vCruise, sm["carState"].vCruiseCluster) * (1 if frogpilot_toggles.is_metric else CV.KPH_TO_MPH) >= 69: - self.events.add(FrogPilotEventName.vCruise69) + if "vCruise69" not in self.played_events and 70 > max(sm["carState"].vCruise, sm["carState"].vCruiseCluster) * (1 if starpilot_toggles.is_metric else CV.KPH_TO_MPH) >= 69: + self.events.add(StarPilotEventName.vCruise69) if f"{EVENT_NAME[EventName.fcw]}/" in current_alert or f"{EVENT_NAME[EventName.stockAeb]}/" in current_alert: event_choices = [] @@ -163,39 +163,39 @@ class FrogPilotEvents: if event_choices: event_choice = random.choice(event_choices) if event_choice == "toBeContinued": - self.events.add(FrogPilotEventName.toBeContinued) + self.events.add(StarPilotEventName.toBeContinued) elif event_choice == "yourFrogTriedToKillMe": - self.events.add(FrogPilotEventName.yourFrogTriedToKillMe) + self.events.add(StarPilotEventName.yourFrogTriedToKillMe) - if "youveGotMail" not in self.played_events and sm["frogpilotCarState"].alwaysOnLateralEnabled and not self.always_on_lateral_enabled_previously: + if "youveGotMail" not in self.played_events and sm["starpilotCarState"].alwaysOnLateralEnabled and not self.always_on_lateral_enabled_previously: if random.random() < RANDOM_EVENTS_CHANCE / DT_MDL: - self.events.add(FrogPilotEventName.youveGotMail) + self.events.add(StarPilotEventName.youveGotMail) - self.always_on_lateral_enabled_previously = sm["frogpilotCarState"].alwaysOnLateralEnabled + self.always_on_lateral_enabled_previously = sm["starpilotCarState"].alwaysOnLateralEnabled self.random_event_playing |= bool({event for event in self.events.names if RANDOM_EVENT_START <= event <= RANDOM_EVENT_END}) if self.error_log.is_file(): - if frogpilot_toggles.random_events: - self.events.add(FrogPilotEventName.openpilotCrashedRandomEvent) + if starpilot_toggles.random_events: + self.events.add(StarPilotEventName.openpilotCrashedRandomEvent) else: - self.events.add(FrogPilotEventName.openpilotCrashed) + self.events.add(StarPilotEventName.openpilotCrashed) - if self.frogpilot_planner.frogpilot_vcruise.slc.speed_limit_changed_timer == DT_MDL and frogpilot_toggles.speed_limit_changed_alert: - self.events.add(FrogPilotEventName.speedLimitChanged) + if self.starpilot_planner.starpilot_vcruise.slc.speed_limit_changed_timer == DT_MDL and starpilot_toggles.speed_limit_changed_alert: + self.events.add(StarPilotEventName.speedLimitChanged) - self.startup_seen |= sm["frogpilotSelfdriveState"].alertText1 == frogpilot_toggles.startup_alert_top and sm["frogpilotSelfdriveState"].alertText2 == frogpilot_toggles.startup_alert_bottom + self.startup_seen |= sm["starpilotSelfdriveState"].alertText1 == starpilot_toggles.startup_alert_top and sm["starpilotSelfdriveState"].alertText2 == starpilot_toggles.startup_alert_bottom - if sm["frogpilotCarState"].trafficModeEnabled != self.previous_traffic_mode: + if sm["starpilotCarState"].trafficModeEnabled != self.previous_traffic_mode: if self.previous_traffic_mode: - self.events.add(FrogPilotEventName.trafficModeInactive) + self.events.add(StarPilotEventName.trafficModeInactive) else: - self.events.add(FrogPilotEventName.trafficModeActive) + self.events.add(StarPilotEventName.trafficModeActive) - self.previous_traffic_mode = sm["frogpilotCarState"].trafficModeEnabled + self.previous_traffic_mode = sm["starpilotCarState"].trafficModeEnabled - if sm["frogpilotModelV2"].turnDirection == TurnDirection.turnLeft: - self.events.add(FrogPilotEventName.turningLeft) - elif sm["frogpilotModelV2"].turnDirection == TurnDirection.turnRight: - self.events.add(FrogPilotEventName.turningRight) + if sm["starpilotModelV2"].turnDirection == TurnDirection.turnLeft: + self.events.add(StarPilotEventName.turningLeft) + elif sm["starpilotModelV2"].turnDirection == TurnDirection.turnRight: + self.events.add(StarPilotEventName.turningRight) - self.played_events.update(FROGPILOT_EVENT_NAME[event] for event in self.events.names) + self.played_events.update(STARPILOT_EVENT_NAME[event] for event in self.events.names) diff --git a/frogpilot/controls/lib/frogpilot_following.py b/starpilot/controls/lib/starpilot_following.py similarity index 56% rename from frogpilot/controls/lib/frogpilot_following.py rename to starpilot/controls/lib/starpilot_following.py index 176a4fe8..c5c45d88 100644 --- a/frogpilot/controls/lib/frogpilot_following.py +++ b/starpilot/controls/lib/starpilot_following.py @@ -4,15 +4,15 @@ import numpy as np from openpilot.common.constants import CV from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import COMFORT_BRAKE, LEAD_DANGER_FACTOR, desired_follow_distance, get_jerk_factor, get_T_FOLLOW -from openpilot.frogpilot.common.frogpilot_variables import CITY_SPEED_LIMIT, MAX_T_FOLLOW +from openpilot.starpilot.common.starpilot_variables import CITY_SPEED_LIMIT, MAX_T_FOLLOW TRAFFIC_MODE_BP = [0., CITY_SPEED_LIMIT] PERSONALITY_BP = [45. * CV.MPH_TO_MS, 70. * CV.MPH_TO_MS] HIGHWAY_DISABLE_THROTTLE_MIN_SPEED = 45. * CV.MPH_TO_MS -class FrogPilotFollowing: - def __init__(self, FrogPilotPlanner): - self.frogpilot_planner = FrogPilotPlanner +class StarPilotFollowing: + def __init__(self, StarPilotPlanner): + self.starpilot_planner = StarPilotPlanner self.disable_throttle = False self.following_lead = False @@ -24,38 +24,38 @@ class FrogPilotFollowing: self.speed_jerk = 0 self.t_follow = 0 - def update(self, long_control_active, v_ego, sm, frogpilot_toggles): - if long_control_active and sm["frogpilotCarState"].trafficModeEnabled: + def update(self, long_control_active, v_ego, sm, starpilot_toggles): + if long_control_active and sm["starpilotCarState"].trafficModeEnabled: if sm["carState"].aEgo >= 0: - self.base_acceleration_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_jerk_acceleration) - self.base_speed_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_jerk_speed) + self.base_acceleration_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, starpilot_toggles.traffic_mode_jerk_acceleration) + self.base_speed_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, starpilot_toggles.traffic_mode_jerk_speed) else: - self.base_acceleration_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_jerk_deceleration) - self.base_speed_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_jerk_speed_decrease) + self.base_acceleration_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, starpilot_toggles.traffic_mode_jerk_deceleration) + self.base_speed_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, starpilot_toggles.traffic_mode_jerk_speed_decrease) - self.base_danger_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_jerk_danger) - self.t_follow = np.interp(v_ego, TRAFFIC_MODE_BP, frogpilot_toggles.traffic_mode_follow) + self.base_danger_jerk = np.interp(v_ego, TRAFFIC_MODE_BP, starpilot_toggles.traffic_mode_jerk_danger) + self.t_follow = np.interp(v_ego, TRAFFIC_MODE_BP, starpilot_toggles.traffic_mode_follow) elif long_control_active: if sm["carState"].aEgo >= 0: self.base_acceleration_jerk, self.base_danger_jerk, self.base_speed_jerk = get_jerk_factor( - frogpilot_toggles.aggressive_jerk_acceleration, frogpilot_toggles.aggressive_jerk_danger, frogpilot_toggles.aggressive_jerk_speed, - frogpilot_toggles.standard_jerk_acceleration, frogpilot_toggles.standard_jerk_danger, frogpilot_toggles.standard_jerk_speed, - frogpilot_toggles.relaxed_jerk_acceleration, frogpilot_toggles.relaxed_jerk_danger, frogpilot_toggles.relaxed_jerk_speed, - frogpilot_toggles.custom_personalities, sm["selfdriveState"].personality + starpilot_toggles.aggressive_jerk_acceleration, starpilot_toggles.aggressive_jerk_danger, starpilot_toggles.aggressive_jerk_speed, + starpilot_toggles.standard_jerk_acceleration, starpilot_toggles.standard_jerk_danger, starpilot_toggles.standard_jerk_speed, + starpilot_toggles.relaxed_jerk_acceleration, starpilot_toggles.relaxed_jerk_danger, starpilot_toggles.relaxed_jerk_speed, + starpilot_toggles.custom_personalities, sm["selfdriveState"].personality ) else: self.base_acceleration_jerk, self.base_danger_jerk, self.base_speed_jerk = get_jerk_factor( - frogpilot_toggles.aggressive_jerk_deceleration, frogpilot_toggles.aggressive_jerk_danger, frogpilot_toggles.aggressive_jerk_speed_decrease, - frogpilot_toggles.standard_jerk_deceleration, frogpilot_toggles.standard_jerk_danger, frogpilot_toggles.standard_jerk_speed_decrease, - frogpilot_toggles.relaxed_jerk_deceleration, frogpilot_toggles.relaxed_jerk_danger, frogpilot_toggles.relaxed_jerk_speed_decrease, - frogpilot_toggles.custom_personalities, sm["selfdriveState"].personality + starpilot_toggles.aggressive_jerk_deceleration, starpilot_toggles.aggressive_jerk_danger, starpilot_toggles.aggressive_jerk_speed_decrease, + starpilot_toggles.standard_jerk_deceleration, starpilot_toggles.standard_jerk_danger, starpilot_toggles.standard_jerk_speed_decrease, + starpilot_toggles.relaxed_jerk_deceleration, starpilot_toggles.relaxed_jerk_danger, starpilot_toggles.relaxed_jerk_speed_decrease, + starpilot_toggles.custom_personalities, sm["selfdriveState"].personality ) self.t_follow = get_T_FOLLOW( - frogpilot_toggles.aggressive_follow, - frogpilot_toggles.standard_follow, - frogpilot_toggles.relaxed_follow, - frogpilot_toggles.custom_personalities, sm["selfdriveState"].personality + starpilot_toggles.aggressive_follow, + starpilot_toggles.standard_follow, + starpilot_toggles.relaxed_follow, + starpilot_toggles.custom_personalities, sm["selfdriveState"].personality ) if isinstance(self.t_follow, (list, tuple)): self.t_follow = float(np.interp(v_ego, PERSONALITY_BP, self.t_follow)) @@ -72,16 +72,16 @@ class FrogPilotFollowing: self.danger_jerk = self.base_danger_jerk self.speed_jerk = self.base_speed_jerk - self.following_lead = self.frogpilot_planner.tracking_lead and self.frogpilot_planner.lead_one.dRel < (self.t_follow * 2) * v_ego + self.following_lead = self.starpilot_planner.tracking_lead and self.starpilot_planner.lead_one.dRel < (self.t_follow * 2) * v_ego self.slower_lead = False - if self.frogpilot_planner.frogpilot_weather.weather_id != 0: - self.t_follow = min(self.t_follow + self.frogpilot_planner.frogpilot_weather.increase_following_distance, MAX_T_FOLLOW) + if self.starpilot_planner.starpilot_weather.weather_id != 0: + self.t_follow = min(self.t_follow + self.starpilot_planner.starpilot_weather.increase_following_distance, MAX_T_FOLLOW) self.disable_throttle = False - if self.frogpilot_planner.tracking_lead and self.frogpilot_planner.lead_one.status: - lead_distance = self.frogpilot_planner.lead_one.dRel - v_lead = self.frogpilot_planner.lead_one.vLead + if self.starpilot_planner.tracking_lead and self.starpilot_planner.lead_one.status: + lead_distance = self.starpilot_planner.lead_one.dRel + v_lead = self.starpilot_planner.lead_one.vLead closing_speed = max(0.0, v_ego - v_lead) desired_gap = float(desired_follow_distance(v_ego, v_lead, self.t_follow)) ttc = lead_distance / max(closing_speed, 1e-3) if closing_speed > 0.1 else 1e6 @@ -94,30 +94,30 @@ class FrogPilotFollowing: coast_window_far and gentle_closing) self.disable_throttle &= ttc > 6.0 and lead_distance > desired_gap + 6.0 - if long_control_active and self.frogpilot_planner.tracking_lead: - self.update_follow_values(self.frogpilot_planner.lead_one.dRel, v_ego, self.frogpilot_planner.lead_one.vLead, frogpilot_toggles) - self.desired_follow_distance = int(desired_follow_distance(v_ego, self.frogpilot_planner.lead_one.vLead, self.t_follow)) + if long_control_active and self.starpilot_planner.tracking_lead: + self.update_follow_values(self.starpilot_planner.lead_one.dRel, v_ego, self.starpilot_planner.lead_one.vLead, starpilot_toggles) + self.desired_follow_distance = int(desired_follow_distance(v_ego, self.starpilot_planner.lead_one.vLead, self.t_follow)) else: self.desired_follow_distance = 0 - def update_follow_values(self, lead_distance, v_ego, v_lead, frogpilot_toggles): - if frogpilot_toggles.human_following and v_lead > v_ego: + def update_follow_values(self, lead_distance, v_ego, v_lead, starpilot_toggles): + if starpilot_toggles.human_following and v_lead > v_ego: distance_factor = max(lead_distance - (v_ego * self.t_follow), 1) - from frogpilot.common.frogpilot_variables import get_frogpilot_toggles - fp_toggles = get_frogpilot_toggles() + from starpilot.common.starpilot_variables import get_starpilot_toggles + fp_toggles = get_starpilot_toggles() accelerating_offset = float(np.clip(fp_toggles.stop_distance - v_ego, 1, distance_factor)) self.acceleration_jerk /= accelerating_offset self.speed_jerk /= accelerating_offset self.t_follow /= accelerating_offset - if (frogpilot_toggles.conditional_slower_lead or frogpilot_toggles.human_following) and v_lead < v_ego: + if (starpilot_toggles.conditional_slower_lead or starpilot_toggles.human_following) and v_lead < v_ego: distance_factor = max(lead_distance - (v_lead * self.t_follow), 1) braking_offset = float(np.clip(min(v_ego - v_lead, v_lead) - COMFORT_BRAKE, 1, distance_factor)) - if frogpilot_toggles.human_following: - from frogpilot.common.frogpilot_variables import get_frogpilot_toggles - fp_toggles = get_frogpilot_toggles() + if starpilot_toggles.human_following: + from starpilot.common.starpilot_variables import get_starpilot_toggles + fp_toggles = get_starpilot_toggles() far_lead_offset = max(lead_distance - (v_ego * self.t_follow) - fp_toggles.stop_distance, 0) self.t_follow /= braking_offset + far_lead_offset self.slower_lead = braking_offset > 1 diff --git a/frogpilot/controls/lib/frogpilot_vcruise.py b/starpilot/controls/lib/starpilot_vcruise.py similarity index 70% rename from frogpilot/controls/lib/frogpilot_vcruise.py rename to starpilot/controls/lib/starpilot_vcruise.py index b17260f0..9ea2f642 100644 --- a/frogpilot/controls/lib/frogpilot_vcruise.py +++ b/starpilot/controls/lib/starpilot_vcruise.py @@ -2,16 +2,16 @@ from openpilot.common.constants import CV from openpilot.common.realtime import DT_MDL -from openpilot.frogpilot.common.frogpilot_variables import CRUISING_SPEED, PLANNER_TIME -from openpilot.frogpilot.controls.lib.curve_speed_controller import CurveSpeedController -from openpilot.frogpilot.controls.lib.speed_limit_controller import SpeedLimitController +from openpilot.starpilot.common.starpilot_variables import CRUISING_SPEED, PLANNER_TIME +from openpilot.starpilot.controls.lib.curve_speed_controller import CurveSpeedController +from openpilot.starpilot.controls.lib.speed_limit_controller import SpeedLimitController OVERRIDE_FORCE_STOP_TIMER = 10 -class FrogPilotVCruise: - def __init__(self, FrogPilotPlanner): - self.frogpilot_planner = FrogPilotPlanner +class StarPilotVCruise: + def __init__(self, StarPilotPlanner): + self.starpilot_planner = StarPilotPlanner self.csc = CurveSpeedController(self) self.slc = SpeedLimitController(self) @@ -23,9 +23,9 @@ class FrogPilotVCruise: self.force_stop_timer = 0.0 self.tracked_model_length = 0.0 - def update(self, long_control_active, now, time_validated, v_cruise, v_ego, sm, frogpilot_toggles): - force_stop = self.frogpilot_planner.frogpilot_cem.stop_light_detected and long_control_active and frogpilot_toggles.force_stops - force_stop &= self.frogpilot_planner.model_stopped + def update(self, long_control_active, now, time_validated, v_cruise, v_ego, sm, starpilot_toggles): + force_stop = self.starpilot_planner.starpilot_cem.stop_light_detected and long_control_active and starpilot_toggles.force_stops + force_stop &= self.starpilot_planner.model_stopped force_stop &= self.override_force_stop_timer <= 0 self.force_stop_timer = self.force_stop_timer + DT_MDL if force_stop else 0 @@ -33,7 +33,7 @@ class FrogPilotVCruise: force_stop_enabled = self.force_stop_timer >= 1 self.override_force_stop |= sm["carState"].gasPressed - self.override_force_stop |= sm["frogpilotCarState"].accelPressed + self.override_force_stop |= sm["starpilotCarState"].accelPressed self.override_force_stop &= force_stop_enabled if self.override_force_stop: @@ -48,7 +48,7 @@ class FrogPilotVCruise: v_ego_diff = v_ego_cluster - v_ego # FrogsGoMoo's Curve Speed Controller - if long_control_active and v_ego > CRUISING_SPEED and self.frogpilot_planner.road_curvature_detected and frogpilot_toggles.curve_speed_controller: + if long_control_active and v_ego > CRUISING_SPEED and self.starpilot_planner.road_curvature_detected and starpilot_toggles.curve_speed_controller: self.csc.update_target(v_ego) self.csc_controlling_speed = True @@ -63,16 +63,16 @@ class FrogPilotVCruise: self.csc_target = v_cruise # Pfeiferj's Speed Limit Controller - self.slc.frogpilot_toggles = frogpilot_toggles + self.slc.starpilot_toggles = starpilot_toggles - if frogpilot_toggles.speed_limit_controller: - self.slc.update_limits(sm["frogpilotCarState"].dashboardSpeedLimit, now, time_validated, v_cruise, v_ego, sm) + if starpilot_toggles.speed_limit_controller: + self.slc.update_limits(sm["starpilotCarState"].dashboardSpeedLimit, now, time_validated, v_cruise, v_ego, sm) self.slc.update_override(v_cruise, v_cruise_diff, v_ego, v_ego_diff, sm) self.slc_offset = self.slc.offset self.slc_target = self.slc.target - elif frogpilot_toggles.show_speed_limits: - self.slc.update_limits(sm["frogpilotCarState"].dashboardSpeedLimit, now, time_validated, v_cruise, v_ego, sm) + elif starpilot_toggles.show_speed_limits: + self.slc.update_limits(sm["starpilotCarState"].dashboardSpeedLimit, now, time_validated, v_cruise, v_ego, sm) self.slc_offset = 0 self.slc_target = self.slc.target @@ -89,10 +89,10 @@ class FrogPilotVCruise: else: self.forcing_stop = False - self.tracked_model_length = self.frogpilot_planner.model_length + self.tracked_model_length = self.starpilot_planner.model_length targets = [self.csc_target, v_cruise] - if frogpilot_toggles.speed_limit_controller: + if starpilot_toggles.speed_limit_controller: targets.append(max(self.slc.overridden_speed, self.slc_target + self.slc_offset) - v_ego_diff) v_cruise = min([target if target >= CRUISING_SPEED else v_cruise for target in targets]) diff --git a/frogpilot/controls/lib/weather_checker.py b/starpilot/controls/lib/weather_checker.py similarity index 76% rename from frogpilot/controls/lib/weather_checker.py rename to starpilot/controls/lib/weather_checker.py index 9305e675..5953efdd 100644 --- a/frogpilot/controls/lib/weather_checker.py +++ b/starpilot/controls/lib/weather_checker.py @@ -4,8 +4,8 @@ import time from concurrent.futures import ThreadPoolExecutor -from openpilot.frogpilot.common.frogpilot_utilities import calculate_distance_to_point, get_frogpilot_api_info, is_url_pingable -from openpilot.frogpilot.common.frogpilot_variables import FROGPILOT_API +from openpilot.starpilot.common.starpilot_utilities import calculate_distance_to_point, get_starpilot_api_info, is_url_pingable +from openpilot.starpilot.common.starpilot_variables import STARPILOT_API CACHE_DISTANCE = 25 MAX_RETRIES = 3 @@ -36,8 +36,8 @@ WEATHER_CATEGORIES = { } class WeatherChecker: - def __init__(self, FrogPilotPlanner): - self.frogpilot_planner = FrogPilotPlanner + def __init__(self, StarPilotPlanner): + self.starpilot_planner = StarPilotPlanner self.is_daytime = False @@ -56,21 +56,21 @@ class WeatherChecker: self.last_updated = None self.requesting = False - self.user_api_key = self.frogpilot_planner.params.get("WeatherToken", encoding="utf-8") + self.user_api_key = self.starpilot_planner.params.get("WeatherToken", encoding="utf-8") if self.user_api_key: self.check_interval = 60 else: self.check_interval = 15 * 60 - self.api_token, self.build_metadata, self.device_type, self.dongle_id = get_frogpilot_api_info() + self.api_token, self.build_metadata, self.device_type, self.dongle_id = get_starpilot_api_info() self.session = requests.Session() - self.session.headers.update({"Accept-Language": "en", "User-Agent": "frogpilot-api/1.0"}) + self.session.headers.update({"Accept-Language": "en", "User-Agent": "starpilot-api/1.0"}) self.executor = ThreadPoolExecutor(max_workers=1) - def update_offsets(self, frogpilot_toggles): + def update_offsets(self, starpilot_toggles): suffix = WEATHER_CATEGORIES["CLEAR"]["suffix"] for category in WEATHER_CATEGORIES.values(): if any(start <= self.weather_id <= end for start, end in category["ranges"]): @@ -78,23 +78,23 @@ class WeatherChecker: break if suffix != WEATHER_CATEGORIES["CLEAR"]["suffix"]: - self.increase_following_distance = getattr(frogpilot_toggles, f"increase_following_distance_{suffix}") - self.increase_stopped_distance = getattr(frogpilot_toggles, f"increase_stopped_distance_{suffix}") - self.reduce_acceleration = getattr(frogpilot_toggles, f"reduce_acceleration_{suffix}") - self.reduce_lateral_acceleration = getattr(frogpilot_toggles, f"reduce_lateral_acceleration_{suffix}") + self.increase_following_distance = getattr(starpilot_toggles, f"increase_following_distance_{suffix}") + self.increase_stopped_distance = getattr(starpilot_toggles, f"increase_stopped_distance_{suffix}") + self.reduce_acceleration = getattr(starpilot_toggles, f"reduce_acceleration_{suffix}") + self.reduce_lateral_acceleration = getattr(starpilot_toggles, f"reduce_lateral_acceleration_{suffix}") else: self.increase_following_distance = 0 self.increase_stopped_distance = 0 self.reduce_acceleration = 0 self.reduce_lateral_acceleration = 0 - def update_weather(self, now, frogpilot_toggles): + def update_weather(self, now, starpilot_toggles): if self.last_gps_position and self.last_updated: distance = calculate_distance_to_point( self.last_gps_position["latitude"], self.last_gps_position["longitude"], - self.frogpilot_planner.gps_position.get("latitude"), - self.frogpilot_planner.gps_position.get("longitude") + self.starpilot_planner.gps_position.get("latitude"), + self.starpilot_planner.gps_position.get("longitude") ) if distance / 1000 > CACHE_DISTANCE: self.hourly_forecast = None @@ -107,7 +107,7 @@ class WeatherChecker: if self.hourly_forecast: current_forecast = min(self.hourly_forecast, key=lambda f: abs(f["dt"] - now.timestamp())) self.weather_id = current_forecast.get("weather", [{}])[0].get("id", 0) - self.update_offsets(frogpilot_toggles) + self.update_offsets(starpilot_toggles) return if self.requesting: @@ -121,7 +121,7 @@ class WeatherChecker: if data: self.last_updated = now self.hourly_forecast = data.get("hourly") - self.last_gps_position = self.frogpilot_planner.gps_position + self.last_gps_position = self.starpilot_planner.gps_position if "current" in data: source_data = data.get("current", {}) @@ -134,10 +134,10 @@ class WeatherChecker: self.sunset = current_data.get("sunset", 0) self.weather_id = source_data.get("weather", [{}])[0].get("id", 0) - self.update_offsets(frogpilot_toggles) + self.update_offsets(starpilot_toggles) def make_request(): - if not is_url_pingable(FROGPILOT_API): + if not is_url_pingable(STARPILOT_API): return None payload = { @@ -145,14 +145,14 @@ class WeatherChecker: "api_token": self.api_token, "build_metadata": self.build_metadata, "device": self.device_type, - "frogpilot_dongle_id": self.dongle_id, - "lat": self.frogpilot_planner.gps_position["latitude"], - "lon": self.frogpilot_planner.gps_position["longitude"], + "starpilot_dongle_id": self.dongle_id, + "lat": self.starpilot_planner.gps_position["latitude"], + "lon": self.starpilot_planner.gps_position["longitude"], } for attempt in range(1, MAX_RETRIES + 1): try: - response = self.session.post(f"{FROGPILOT_API}/weather", json=payload, headers={"Content-Type": "application/json"}, timeout=10) + response = self.session.post(f"{STARPILOT_API}/weather", json=payload, headers={"Content-Type": "application/json"}, timeout=10) response.raise_for_status() data = response.json() diff --git a/frogpilot/controls/frogpilot_card.py b/starpilot/controls/starpilot_card.py similarity index 60% rename from frogpilot/controls/frogpilot_card.py rename to starpilot/controls/starpilot_card.py index f0244a91..0034b088 100644 --- a/frogpilot/controls/frogpilot_card.py +++ b/starpilot/controls/starpilot_card.py @@ -4,11 +4,11 @@ from openpilot.common.params import Params from openpilot.selfdrive.car.cruise import CRUISE_LONG_PRESS, ButtonType from openpilot.selfdrive.selfdrived.events import ET -from openpilot.frogpilot.common.frogpilot_utilities import is_FrogsGoMoo -from openpilot.frogpilot.common.frogpilot_variables import ERROR_LOGS_PATH, GearShifter, NON_DRIVING_GEARS -from openpilot.frogpilot.controls.lib.conditional_experimental_mode import CEStatus +from openpilot.starpilot.common.starpilot_utilities import is_FrogsGoMoo +from openpilot.starpilot.common.starpilot_variables import ERROR_LOGS_PATH, GearShifter, NON_DRIVING_GEARS +from openpilot.starpilot.controls.lib.conditional_experimental_mode import CEStatus -class FrogPilotCard: +class StarPilotCard: def __init__(self, CP, FPCP): self.CP = CP @@ -34,20 +34,20 @@ class FrogPilotCard: self.error_log = ERROR_LOGS_PATH / "error.txt" - def handle_button_event(self, key, sm, frogpilot_toggles): - if sm["carControl"].longActive and getattr(frogpilot_toggles, f"experimental_mode_via_{key}"): - self.handle_experimental_mode(sm, frogpilot_toggles) - elif getattr(frogpilot_toggles, f"force_coast_via_{key}"): + def handle_button_event(self, key, sm, starpilot_toggles): + if sm["carControl"].longActive and getattr(starpilot_toggles, f"experimental_mode_via_{key}"): + self.handle_experimental_mode(sm, starpilot_toggles) + elif getattr(starpilot_toggles, f"force_coast_via_{key}"): self.force_coast = not self.force_coast - elif getattr(frogpilot_toggles, f"pause_lateral_via_{key}"): + elif getattr(starpilot_toggles, f"pause_lateral_via_{key}"): self.pause_lateral = not self.pause_lateral - elif getattr(frogpilot_toggles, f"pause_longitudinal_via_{key}"): + elif getattr(starpilot_toggles, f"pause_longitudinal_via_{key}"): self.pause_longitudinal = not self.pause_longitudinal - elif sm["carControl"].longActive and getattr(frogpilot_toggles, f"traffic_mode_via_{key}"): + elif sm["carControl"].longActive and getattr(starpilot_toggles, f"traffic_mode_via_{key}"): self.traffic_mode_enabled = not self.traffic_mode_enabled - def handle_experimental_mode(self, sm, frogpilot_toggles): - if frogpilot_toggles.conditional_experimental_mode: + def handle_experimental_mode(self, sm, starpilot_toggles): + if starpilot_toggles.conditional_experimental_mode: if self.params_memory.get_int("CEStatus") in (CEStatus["USER_DISABLED"], CEStatus["USER_OVERRIDDEN"]): override_value = CEStatus["OFF"] elif sm["selfdriveState"].experimentalMode: @@ -59,61 +59,61 @@ class FrogPilotCard: else: self.params.put_bool_nonblocking("ExperimentalMode", not sm["selfdriveState"].experimentalMode) - def update(self, carState, frogpilotCarState, sm, frogpilot_toggles): + def update(self, carState, starpilotCarState, sm, starpilot_toggles): if self.CP.brand == "hyundai": for be in carState.buttonEvents: - if be.type == ButtonType.lkas and be.pressed and frogpilot_toggles.always_on_lateral_lkas: + if be.type == ButtonType.lkas and be.pressed and starpilot_toggles.always_on_lateral_lkas: self.always_on_lateral_allowed = not self.always_on_lateral_allowed - elif be.type == ButtonType.mainCruise and be.pressed and frogpilot_toggles.always_on_lateral_main: + elif be.type == ButtonType.mainCruise and be.pressed and starpilot_toggles.always_on_lateral_main: self.always_on_lateral_allowed = not self.always_on_lateral_allowed - elif frogpilot_toggles.always_on_lateral_main: + elif starpilot_toggles.always_on_lateral_main: self.always_on_lateral_allowed = carState.cruiseState.available self.always_on_lateral_enabled = self.always_on_lateral_allowed and self.always_on_lateral_set self.always_on_lateral_enabled &= carState.gearShifter not in NON_DRIVING_GEARS - self.always_on_lateral_enabled &= sm["frogpilotPlan"].lateralCheck + self.always_on_lateral_enabled &= sm["starpilotPlan"].lateralCheck self.always_on_lateral_enabled &= sm["liveCalibration"].calPerc >= 1 - self.always_on_lateral_enabled &= (ET.IMMEDIATE_DISABLE not in sm["selfdriveState"].alertType + sm["frogpilotSelfdriveState"].alertType) or self.frogs_go_moo - self.always_on_lateral_enabled &= not (carState.brakePressed and carState.vEgo < frogpilot_toggles.always_on_lateral_pause_speed) or carState.standstill + self.always_on_lateral_enabled &= (ET.IMMEDIATE_DISABLE not in sm["selfdriveState"].alertType + sm["starpilotSelfdriveState"].alertType) or self.frogs_go_moo + self.always_on_lateral_enabled &= not (carState.brakePressed and carState.vEgo < starpilot_toggles.always_on_lateral_pause_speed) or carState.standstill self.always_on_lateral_enabled &= not self.error_log.is_file() or self.frogs_go_moo - if sm.updated["frogpilotPlan"] or any(be.type in (ButtonType.accelCruise, ButtonType.resumeCruise) for be in carState.buttonEvents): + if sm.updated["starpilotPlan"] or any(be.type in (ButtonType.accelCruise, ButtonType.resumeCruise) for be in carState.buttonEvents): self.accel_pressed = any(be.type in (ButtonType.accelCruise, ButtonType.resumeCruise) for be in carState.buttonEvents) - if sm.updated["frogpilotPlan"] or any(be.type == ButtonType.decelCruise for be in carState.buttonEvents): + if sm.updated["starpilotPlan"] or any(be.type == ButtonType.decelCruise for be in carState.buttonEvents): self.decel_pressed = any(be.type == ButtonType.decelCruise for be in carState.buttonEvents) - frogpilotCarState.distancePressed |= self.params_memory.get_bool("OnroadDistanceButtonPressed") + starpilotCarState.distancePressed |= self.params_memory.get_bool("OnroadDistanceButtonPressed") - if frogpilotCarState.distancePressed: + if starpilotCarState.distancePressed: self.gap_counter += 1 elif not self.distancePressed_previously: self.gap_counter = 0 - self.distancePressed_previously = frogpilotCarState.distancePressed + self.distancePressed_previously = starpilotCarState.distancePressed - if not frogpilotCarState.distancePressed and 1 <= self.gap_counter < self.long_press_threshold: - self.handle_button_event("distance", sm, frogpilot_toggles) + if not starpilotCarState.distancePressed and 1 <= self.gap_counter < self.long_press_threshold: + self.handle_button_event("distance", sm, starpilot_toggles) elif self.gap_counter == self.long_press_threshold: - self.handle_button_event("distance_long", sm, frogpilot_toggles) + self.handle_button_event("distance_long", sm, starpilot_toggles) elif self.gap_counter == self.very_long_press_threshold: - self.handle_button_event("distance_long", sm, frogpilot_toggles) - self.handle_button_event("distance_very_long", sm, frogpilot_toggles) + self.handle_button_event("distance_long", sm, starpilot_toggles) + self.handle_button_event("distance_very_long", sm, starpilot_toggles) if any(be.pressed and be.type == ButtonType.lkas for be in carState.buttonEvents): - self.handle_button_event("lkas", sm, frogpilot_toggles) + self.handle_button_event("lkas", sm, starpilot_toggles) self.force_coast &= not (carState.brakePressed or carState.gasPressed) - frogpilotCarState.accelPressed = self.accel_pressed - frogpilotCarState.alwaysOnLateralEnabled = self.always_on_lateral_enabled - frogpilotCarState.decelPressed = self.decel_pressed - frogpilotCarState.distanceLongPressed = self.very_long_press_threshold > self.gap_counter >= self.long_press_threshold - frogpilotCarState.distanceVeryLongPressed = self.gap_counter >= self.very_long_press_threshold - frogpilotCarState.forceCoast = self.force_coast - frogpilotCarState.isParked = carState.gearShifter == GearShifter.park - frogpilotCarState.pauseLateral = self.pause_lateral - frogpilotCarState.pauseLongitudinal = self.pause_longitudinal - frogpilotCarState.trafficModeEnabled = self.traffic_mode_enabled + starpilotCarState.accelPressed = self.accel_pressed + starpilotCarState.alwaysOnLateralEnabled = self.always_on_lateral_enabled + starpilotCarState.decelPressed = self.decel_pressed + starpilotCarState.distanceLongPressed = self.very_long_press_threshold > self.gap_counter >= self.long_press_threshold + starpilotCarState.distanceVeryLongPressed = self.gap_counter >= self.very_long_press_threshold + starpilotCarState.forceCoast = self.force_coast + starpilotCarState.isParked = carState.gearShifter == GearShifter.park + starpilotCarState.pauseLateral = self.pause_lateral + starpilotCarState.pauseLongitudinal = self.pause_longitudinal + starpilotCarState.trafficModeEnabled = self.traffic_mode_enabled - return frogpilotCarState + return starpilotCarState diff --git a/starpilot/controls/starpilot_planner.py b/starpilot/controls/starpilot_planner.py new file mode 100644 index 00000000..06b68bd8 --- /dev/null +++ b/starpilot/controls/starpilot_planner.py @@ -0,0 +1,203 @@ +#!/usr/bin/env python3 +import json + +import cereal.messaging as messaging + +from openpilot.common.constants import CV +from openpilot.common.filter_simple import FirstOrderFilter +from openpilot.common.gps import get_gps_location_service +from openpilot.common.params import Params +from openpilot.common.realtime import DT_MDL +from openpilot.selfdrive.car.cruise import V_CRUISE_MAX, V_CRUISE_UNSET +from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import A_CHANGE_COST, DANGER_ZONE_COST, J_EGO_COST, STOP_DISTANCE + +from openpilot.starpilot.common.starpilot_utilities import calculate_lane_width, calculate_road_curvature +from openpilot.starpilot.common.starpilot_variables import CRUISING_SPEED, MINIMUM_LATERAL_ACCELERATION, PLANNER_TIME, THRESHOLD +from openpilot.starpilot.controls.lib.conditional_experimental_mode import ConditionalExperimentalMode +from openpilot.starpilot.controls.lib.starpilot_acceleration import StarPilotAcceleration +from openpilot.starpilot.controls.lib.starpilot_events import StarPilotEvents +from openpilot.starpilot.controls.lib.starpilot_following import StarPilotFollowing +from openpilot.starpilot.controls.lib.starpilot_vcruise import StarPilotVCruise +from openpilot.starpilot.controls.lib.weather_checker import WeatherChecker + + +class StarPilotPlanner: + def __init__(self, error_log, ThemeManager): + self.params = Params(return_defaults=True) + self.params_memory = Params(memory=True) + + self.starpilot_acceleration = StarPilotAcceleration(self) + self.starpilot_cem = ConditionalExperimentalMode(self) + self.starpilot_events = StarPilotEvents(self, error_log, ThemeManager) + self.starpilot_following = StarPilotFollowing(self) + self.starpilot_vcruise = StarPilotVCruise(self) + self.starpilot_weather = WeatherChecker(self) + + self.driving_in_curve = False + self.gps_valid = False + self.lateral_check = False + self.model_stopped = False + self.road_curvature_detected = False + self.tracking_lead = False + + self.lane_width_left = 0 + self.lane_width_right = 0 + self.lateral_acceleration = 0 + self.model_length = 0 + self.road_curvature = 0 + self.time_to_curve = 0 + self.v_cruise = 0 + + self.gps_position = None + + self.gps_location_service = get_gps_location_service(self.params) + + self.tracking_lead_filter = FirstOrderFilter(0, 0.5, DT_MDL) + + def shutdown(self): + self.starpilot_vcruise.slc.executor.shutdown(wait=False, cancel_futures=True) + self.starpilot_weather.executor.shutdown(wait=False, cancel_futures=True) + + def update(self, now, time_validated, sm, starpilot_toggles): + self.lead_one = sm["radarState"].leadOne + + controls_enabled = sm["selfdriveState"].enabled + + v_cruise_kph = min(sm["carState"].vCruise, V_CRUISE_MAX) + if 0 < v_cruise_kph < V_CRUISE_UNSET and starpilot_toggles.set_speed_offset > 0: + v_cruise_kph += starpilot_toggles.set_speed_offset + v_cruise = v_cruise_kph * CV.KPH_TO_MS + v_ego = max(sm["carState"].vEgo, 0) + + if controls_enabled: + self.starpilot_acceleration.update(v_ego, sm, starpilot_toggles) + else: + self.starpilot_acceleration.max_accel = 0 + self.starpilot_acceleration.min_accel = 0 + + if controls_enabled and starpilot_toggles.conditional_experimental_mode: + self.starpilot_cem.update(v_ego, sm, starpilot_toggles) + else: + self.starpilot_cem.curve_detected = False + self.starpilot_cem.stop_sign_and_light(v_ego, sm, PLANNER_TIME - 2) + + self.driving_in_curve = abs(self.lateral_acceleration) >= MINIMUM_LATERAL_ACCELERATION + + self.starpilot_events.update(controls_enabled, v_cruise, sm, starpilot_toggles) + + self.starpilot_following.update(controls_enabled, v_ego, sm, starpilot_toggles) + + gps_location = sm[self.gps_location_service] + self.gps_position = { + "latitude": gps_location.latitude, + "longitude": gps_location.longitude, + "bearing": gps_location.bearingDeg, + } + self.gps_valid = self.gps_position["latitude"] != 0 or self.gps_position["longitude"] != 0 + self.params_memory.put("LastGPSPosition", json.dumps(self.gps_position)) + + if v_ego >= starpilot_toggles.minimum_lane_change_speed: + self.lane_width_left = calculate_lane_width(sm["modelV2"].laneLines[0], sm["modelV2"].laneLines[1], sm["modelV2"].roadEdges[0]) + self.lane_width_right = calculate_lane_width(sm["modelV2"].laneLines[3], sm["modelV2"].laneLines[2], sm["modelV2"].roadEdges[1]) + else: + self.lane_width_left = 0 + self.lane_width_right = 0 + + self.lateral_acceleration = v_ego**2 * sm["controlsState"].curvature + + self.lateral_check = v_ego >= starpilot_toggles.pause_lateral_below_speed + self.lateral_check |= not (sm["carState"].leftBlinker or sm["carState"].rightBlinker) and starpilot_toggles.pause_lateral_below_signal + self.lateral_check |= sm["carState"].standstill + self.lateral_check &= not sm["starpilotCarState"].pauseLateral + + self.model_length = sm["modelV2"].position.x[-1] + + self.model_stopped = self.model_length < CRUISING_SPEED * PLANNER_TIME + self.model_stopped |= self.starpilot_vcruise.forcing_stop + + self.road_curvature, self.time_to_curve = calculate_road_curvature(sm["modelV2"]) + + self.road_curvature_detected = (1 / abs(self.road_curvature))**0.5 < v_ego > CRUISING_SPEED and not (sm["carState"].leftBlinker or sm["carState"].rightBlinker) + + if not sm["carState"].standstill: + self.tracking_lead = self.update_lead_status(starpilot_toggles.stop_distance) + + self.v_cruise = self.starpilot_vcruise.update(controls_enabled, now, time_validated, v_cruise, v_ego, sm, starpilot_toggles) + + if self.gps_valid and time_validated and starpilot_toggles.weather_presets: + self.starpilot_weather.update_weather(now, starpilot_toggles) + else: + self.starpilot_weather.weather_id = 0 + + def update_lead_status(self, stop_distance=STOP_DISTANCE): + following_lead = self.lead_one.status + following_lead &= self.lead_one.dRel < self.model_length + max(float(stop_distance), 4.0) + + self.tracking_lead_filter.update(following_lead) + return self.tracking_lead_filter.x >= THRESHOLD + + def publish(self, theme_updated, sm, pm, starpilot_toggles): + starpilot_plan_send = messaging.new_message("starpilotPlan") + starpilot_plan_send.valid = sm.all_checks(service_list=["carState", "controlsState", "selfdriveState", "radarState"]) + starpilotPlan = starpilot_plan_send.starpilotPlan + + starpilotPlan.accelerationJerk = float(A_CHANGE_COST * self.starpilot_following.acceleration_jerk) + starpilotPlan.dangerFactor = float(self.starpilot_following.danger_factor) + starpilotPlan.dangerJerk = float(DANGER_ZONE_COST * self.starpilot_following.danger_jerk) + starpilotPlan.speedJerk = float(J_EGO_COST * self.starpilot_following.speed_jerk) + starpilotPlan.tFollow = float(self.starpilot_following.t_follow) + + starpilotPlan.cscControllingSpeed = self.starpilot_vcruise.csc_controlling_speed + starpilotPlan.cscSpeed = float(self.starpilot_vcruise.csc_target) + starpilotPlan.cscTraining = self.starpilot_vcruise.csc.enable_training + + starpilotPlan.desiredFollowDistance = int(self.starpilot_following.desired_follow_distance) + starpilotPlan.disableThrottle = self.starpilot_following.disable_throttle + starpilotPlan.trackingLead = self.tracking_lead + + starpilotPlan.experimentalMode = self.starpilot_cem.experimental_mode or self.starpilot_vcruise.slc.experimental_mode + + starpilotPlan.forcingStop = self.starpilot_vcruise.forcing_stop + starpilotPlan.forcingStopLength = self.starpilot_vcruise.tracked_model_length + + starpilotPlan.starpilotEvents = self.starpilot_events.events.to_msg() + + starpilotPlan.starpilotToggles = json.dumps(vars(starpilot_toggles)) + + if sm["starpilotCarState"].trafficModeEnabled: + starpilotPlan.increasedStoppedDistance = 0 + else: + starpilotPlan.increasedStoppedDistance = starpilot_toggles.increase_stopped_distance + if self.starpilot_weather.weather_id != 0: + starpilotPlan.increasedStoppedDistance += self.starpilot_weather.increase_stopped_distance + + starpilotPlan.laneWidthLeft = self.lane_width_left + starpilotPlan.laneWidthRight = self.lane_width_right + + starpilotPlan.lateralCheck = self.lateral_check + + starpilotPlan.maxAcceleration = float(self.starpilot_acceleration.max_accel) + starpilotPlan.minAcceleration = float(self.starpilot_acceleration.min_accel) + + starpilotPlan.redLight = self.starpilot_cem.stop_light_detected + + starpilotPlan.roadCurvature = self.road_curvature + + starpilotPlan.slcMapSpeedLimit = self.starpilot_vcruise.slc.map_speed_limit + starpilotPlan.slcMapboxSpeedLimit = self.starpilot_vcruise.slc.mapbox_limit + starpilotPlan.slcNextSpeedLimit = self.starpilot_vcruise.slc.next_speed_limit + starpilotPlan.slcOverriddenSpeed = self.starpilot_vcruise.slc.overridden_speed + starpilotPlan.slcSpeedLimit = self.starpilot_vcruise.slc_target + starpilotPlan.slcSpeedLimitOffset = self.starpilot_vcruise.slc_offset + starpilotPlan.slcSpeedLimitSource = self.starpilot_vcruise.slc.source + starpilotPlan.speedLimitChanged = self.starpilot_vcruise.slc.speed_limit_changed_timer > DT_MDL + starpilotPlan.unconfirmedSlcSpeedLimit = self.starpilot_vcruise.slc.unconfirmed_speed_limit + + starpilotPlan.themeUpdated = theme_updated + + starpilotPlan.vCruise = float(self.v_cruise) + + starpilotPlan.weatherDaytime = self.starpilot_weather.is_daytime + starpilotPlan.weatherId = self.starpilot_weather.weather_id + + pm.send("starpilotPlan", starpilot_plan_send) diff --git a/frogpilot/navigation/mapd b/starpilot/navigation/mapd similarity index 100% rename from frogpilot/navigation/mapd rename to starpilot/navigation/mapd diff --git a/frogpilot/navigation/mapd_wrapper.py b/starpilot/navigation/mapd_wrapper.py similarity index 98% rename from frogpilot/navigation/mapd_wrapper.py rename to starpilot/navigation/mapd_wrapper.py index f0c24fc3..c2a90173 100644 --- a/frogpilot/navigation/mapd_wrapper.py +++ b/starpilot/navigation/mapd_wrapper.py @@ -12,7 +12,7 @@ from pathlib import Path from openpilot.common.basedir import BASEDIR from openpilot.common.swaglog import cloudlog -MAPD_DIR = Path(BASEDIR) / "frogpilot/navigation" +MAPD_DIR = Path(BASEDIR) / "starpilot/navigation" MAPD_BIN = MAPD_DIR / "mapd" OFFLINE_ROOT = Path("/data/media/0/osm/offline") RESTART_DELAY_S = 0.25 diff --git a/frogpilot/navigation/test_mapd_wrapper.py b/starpilot/navigation/test_mapd_wrapper.py similarity index 91% rename from frogpilot/navigation/test_mapd_wrapper.py rename to starpilot/navigation/test_mapd_wrapper.py index e1c591c6..05e39482 100644 --- a/frogpilot/navigation/test_mapd_wrapper.py +++ b/starpilot/navigation/test_mapd_wrapper.py @@ -3,7 +3,7 @@ import json from pathlib import Path -from openpilot.frogpilot.navigation.mapd_wrapper import CorruptTileMonitor, quarantine_offline_tile +from openpilot.starpilot.navigation.mapd_wrapper import CorruptTileMonitor, quarantine_offline_tile def _loading_line(filename: str) -> str: @@ -32,7 +32,7 @@ def test_quarantine_offline_tile_renames_file(tmp_path, monkeypatch): tile.parent.mkdir(parents=True) tile.write_text("bad") - monkeypatch.setattr("openpilot.frogpilot.navigation.mapd_wrapper.OFFLINE_ROOT", offline_root) + monkeypatch.setattr("openpilot.starpilot.navigation.mapd_wrapper.OFFLINE_ROOT", offline_root) quarantined = quarantine_offline_tile(tile.as_posix()) diff --git a/frogpilot/frogpilot_process.py b/starpilot/starpilot_process.py similarity index 62% rename from frogpilot/frogpilot_process.py rename to starpilot/starpilot_process.py index 8cc2db85..2e25e31e 100644 --- a/frogpilot/frogpilot_process.py +++ b/starpilot/starpilot_process.py @@ -9,21 +9,22 @@ from openpilot.common.api import Api, api_get from openpilot.common.params import Params from openpilot.common.realtime import DT_MDL, Priority, Ratekeeper, config_realtime_process from openpilot.common.time_helpers import system_time_valid +from openpilot.system.sentry import capture_report from openpilot.system.athena.registration import UNREGISTERED_DONGLE_ID -from openpilot.frogpilot.assets.model_manager import MODEL_DOWNLOAD_ALL_PARAM, MODEL_DOWNLOAD_PARAM, ModelManager -from openpilot.frogpilot.assets.theme_manager import THEME_COMPONENT_PARAMS, ThemeManager -from openpilot.frogpilot.common.frogpilot_functions import capture_report, update_maps, update_openpilot -from openpilot.frogpilot.common.frogpilot_utilities import ThreadManager, flash_panda, is_url_pingable, lock_doors, use_konik_server -from openpilot.frogpilot.common.frogpilot_variables import ERROR_LOGS_PATH, FrogPilotVariables -from openpilot.frogpilot.controls.frogpilot_planner import FrogPilotPlanner -from openpilot.frogpilot.system.frogpilot_stats import send_stats -from openpilot.frogpilot.system.frogpilot_tracking import FrogPilotTracking +from openpilot.starpilot.assets.model_manager import MODEL_DOWNLOAD_ALL_PARAM, MODEL_DOWNLOAD_PARAM, ModelManager +from openpilot.starpilot.assets.theme_manager import THEME_COMPONENT_PARAMS, ThemeManager +from openpilot.starpilot.common.starpilot_functions import update_maps, update_openpilot +from openpilot.starpilot.common.starpilot_utilities import ThreadManager, flash_panda, is_url_pingable, lock_doors, use_konik_server +from openpilot.starpilot.common.starpilot_variables import ERROR_LOGS_PATH, StarPilotVariables +from openpilot.starpilot.controls.starpilot_planner import StarPilotPlanner +from openpilot.starpilot.system.starpilot_stats import send_stats +from openpilot.starpilot.system.starpilot_tracking import StarPilotTracking ASSET_CHECK_RATE = (1 / DT_MDL) DRIVE_STATS_SYNC_RATE = 30 -def check_assets(now, model_manager, theme_manager, thread_manager, params, params_memory, frogpilot_toggles): +def check_assets(now, model_manager, theme_manager, thread_manager, params, params_memory, starpilot_toggles): if params_memory.get_bool(MODEL_DOWNLOAD_ALL_PARAM): thread_manager.run_with_lock(model_manager.download_all_models) elif params_memory.get_bool("UpdateTinygrad"): @@ -38,14 +39,14 @@ def check_assets(now, model_manager, theme_manager, thread_manager, params, para for asset_type, asset_param in THEME_COMPONENT_PARAMS.items(): asset_to_download = params_memory.get(asset_param) if asset_to_download: - thread_manager.run_with_lock(theme_manager.download_theme, (asset_type, asset_to_download, asset_param, frogpilot_toggles)) + thread_manager.run_with_lock(theme_manager.download_theme, (asset_type, asset_to_download, asset_param, starpilot_toggles)) if params_memory.get_bool("FlashPanda"): thread_manager.run_with_lock(flash_panda, (params_memory)) report_data = params_memory.get("IssueReported") if report_data: - capture_report(report_data["DiscordUser"], report_data["Issue"], params, vars(frogpilot_toggles)) + capture_report(report_data["DiscordUser"], report_data["Issue"], vars(starpilot_toggles)) params_memory.remove("IssueReported") if params_memory.get_bool("DownloadMaps"): @@ -85,14 +86,14 @@ def sync_drive_stats(params, session): except Exception as exception: print(f"Failed to sync drive stats: {exception}") -def transition_offroad(frogpilot_planner, theme_manager, thread_manager, time_validated, sm, params, frogpilot_toggles): - params.put("LastGPSPosition", json.dumps(frogpilot_planner.gps_position)) +def transition_offroad(starpilot_planner, theme_manager, thread_manager, time_validated, sm, params, starpilot_toggles): + params.put("LastGPSPosition", json.dumps(starpilot_planner.gps_position)) - if frogpilot_toggles.lock_doors_timer != 0: - thread_manager.run_with_lock(lock_doors, (frogpilot_toggles.lock_doors_timer, sm, params), report=False) + if starpilot_toggles.lock_doors_timer != 0: + thread_manager.run_with_lock(lock_doors, (starpilot_toggles.lock_doors_timer, sm, params), report=False) - if frogpilot_toggles.random_themes: - theme_manager.update_active_theme(time_validated, frogpilot_toggles, randomize_theme=True) + if starpilot_toggles.random_themes: + theme_manager.update_active_theme(time_validated, starpilot_toggles, randomize_theme=True) if time_validated: thread_manager.run_with_lock(send_stats) @@ -101,56 +102,56 @@ def transition_onroad(error_log): if error_log.is_file(): error_log.unlink() -def update_checks(now, model_manager, theme_manager, thread_manager, params, params_memory, frogpilot_toggles, boot_run=False): +def update_checks(now, model_manager, theme_manager, thread_manager, params, params_memory, starpilot_toggles, boot_run=False): while not (is_url_pingable("https://github.com") or is_url_pingable("https://gitlab.com")): time.sleep(60) model_manager.update_models(boot_run) - theme_manager.update_themes(frogpilot_toggles, boot_run) + theme_manager.update_themes(starpilot_toggles, boot_run) thread_manager.run_with_lock(update_maps, (now, params, params_memory)) - if frogpilot_toggles.automatic_updates: + if starpilot_toggles.automatic_updates: thread_manager.run_with_lock(update_openpilot, (thread_manager, params)) time.sleep(1) -def update_toggles(frogpilot_variables, started, theme_manager, thread_manager, time_validated, params, frogpilot_toggles): - previous_holiday_themes = frogpilot_toggles.holiday_themes - previous_random_themes = frogpilot_toggles.random_themes +def update_toggles(starpilot_variables, started, theme_manager, thread_manager, time_validated, params, starpilot_toggles): + previous_holiday_themes = starpilot_toggles.holiday_themes + previous_random_themes = starpilot_toggles.random_themes - frogpilot_variables.update(theme_manager.holiday_theme, started) - frogpilot_toggles = frogpilot_variables.frogpilot_toggles + starpilot_variables.update(theme_manager.holiday_theme, started) + starpilot_toggles = starpilot_variables.starpilot_toggles - randomize_theme = frogpilot_toggles.holiday_themes != previous_holiday_themes - randomize_theme |= frogpilot_toggles.random_themes != previous_random_themes + randomize_theme = starpilot_toggles.holiday_themes != previous_holiday_themes + randomize_theme |= starpilot_toggles.random_themes != previous_random_themes theme_manager.theme_updated = False - theme_manager.update_active_theme(time_validated, frogpilot_toggles, randomize_theme=randomize_theme) + theme_manager.update_active_theme(time_validated, starpilot_toggles, randomize_theme=randomize_theme) - return frogpilot_toggles + return starpilot_toggles -def frogpilot_thread(): +def starpilot_thread(): rate_keeper = Ratekeeper(1 / DT_MDL, None) config_realtime_process(5, Priority.CTRL_LOW) - pm = messaging.PubMaster(["frogpilotPlan"]) + pm = messaging.PubMaster(["starpilotPlan"]) sm = messaging.SubMaster(["carControl", "carState", "controlsState", "deviceState", "driverMonitoringState", "gpsLocation", "gpsLocationExternal", "liveParameters", "managerState", "modelV2", - "onroadEvents", "pandaStates", "radarState", "selfdriveState", "frogpilotCarState", - "frogpilotSelfdriveState", "frogpilotModelV2", "frogpilotOnroadEvents", "mapdOut"], + "onroadEvents", "pandaStates", "radarState", "selfdriveState", "starpilotCarState", + "starpilotSelfdriveState", "starpilotModelV2", "starpilotOnroadEvents", "mapdOut"], poll="modelV2") params = Params(return_defaults=True) params_memory = Params(memory=True) - frogpilot_variables = FrogPilotVariables() + starpilot_variables = StarPilotVariables() model_manager = ModelManager(params, params_memory) theme_manager = ThemeManager(params, params_memory) thread_manager = ThreadManager() - frogpilot_toggles = frogpilot_variables.frogpilot_toggles + starpilot_toggles = starpilot_variables.starpilot_toggles drive_stats_session = requests.Session() next_drive_stats_sync = 0.0 @@ -171,28 +172,28 @@ def frogpilot_thread(): started = sm["deviceState"].started if not started and started_previously: - frogpilot_planner.shutdown() + starpilot_planner.shutdown() - frogpilot_toggles = update_toggles(frogpilot_variables, started, theme_manager, thread_manager, time_validated, params, frogpilot_toggles) - transition_offroad(frogpilot_planner, theme_manager, thread_manager, time_validated, sm, params, frogpilot_toggles) + starpilot_toggles = update_toggles(starpilot_variables, started, theme_manager, thread_manager, time_validated, params, starpilot_toggles) + transition_offroad(starpilot_planner, theme_manager, thread_manager, time_validated, sm, params, starpilot_toggles) run_update_checks = True elif started and not started_previously: - frogpilot_planner = FrogPilotPlanner(error_log, theme_manager) - frogpilot_tracking = FrogPilotTracking(frogpilot_planner, frogpilot_toggles) + starpilot_planner = StarPilotPlanner(error_log, theme_manager) + starpilot_tracking = StarPilotTracking(starpilot_planner, starpilot_toggles) transition_onroad(error_log) if started and sm.updated["modelV2"]: - frogpilot_planner.update(now, time_validated, sm, frogpilot_toggles) - frogpilot_planner.publish(theme_manager.theme_updated, sm, pm, frogpilot_toggles) + starpilot_planner.update(now, time_validated, sm, starpilot_toggles) + starpilot_planner.publish(theme_manager.theme_updated, sm, pm, starpilot_toggles) - frogpilot_tracking.update(now, time_validated, sm, frogpilot_toggles) + starpilot_tracking.update(now, time_validated, sm, starpilot_toggles) elif not started: - frogpilot_plan_send = messaging.new_message("frogpilotPlan") - frogpilot_plan_send.frogpilotPlan.frogpilotToggles = json.dumps(vars(frogpilot_toggles)) - frogpilot_plan_send.frogpilotPlan.themeUpdated = theme_manager.theme_updated - pm.send("frogpilotPlan", frogpilot_plan_send) + starpilot_plan_send = messaging.new_message("starpilotPlan") + starpilot_plan_send.starpilotPlan.starpilotToggles = json.dumps(vars(starpilot_toggles)) + starpilot_plan_send.starpilotPlan.themeUpdated = theme_manager.theme_updated + pm.send("starpilotPlan", starpilot_plan_send) started_previously = started @@ -205,18 +206,18 @@ def frogpilot_thread(): next_drive_stats_sync = 0.0 if rate_keeper.frame % ASSET_CHECK_RATE == 0: - check_assets(now, model_manager, theme_manager, thread_manager, params, params_memory, frogpilot_toggles) + check_assets(now, model_manager, theme_manager, thread_manager, params, params_memory, starpilot_toggles) - if params_memory.get_bool("FrogPilotTogglesUpdated") or theme_manager.theme_updated: - frogpilot_toggles = update_toggles(frogpilot_variables, started, theme_manager, thread_manager, time_validated, params, frogpilot_toggles) + if params_memory.get_bool("StarPilotTogglesUpdated") or theme_manager.theme_updated: + starpilot_toggles = update_toggles(starpilot_variables, started, theme_manager, thread_manager, time_validated, params, starpilot_toggles) run_update_checks |= params_memory.get_bool("ManualUpdateInitiated") - run_update_checks |= now.second == 0 and (now.minute % 60 == 0 or (now.minute % 5 == 0 and frogpilot_variables.frogs_go_moo)) + run_update_checks |= now.second == 0 and (now.minute % 60 == 0 or (now.minute % 5 == 0 and starpilot_variables.frogs_go_moo)) run_update_checks &= time_validated if run_update_checks: - theme_manager.update_active_theme(time_validated, frogpilot_toggles) - thread_manager.run_with_lock(update_checks, (now, model_manager, theme_manager, thread_manager, params, params_memory, frogpilot_toggles)) + theme_manager.update_active_theme(time_validated, starpilot_toggles) + thread_manager.run_with_lock(update_checks, (now, model_manager, theme_manager, thread_manager, params, params_memory, starpilot_toggles)) run_update_checks = False elif not time_validated: @@ -224,16 +225,16 @@ def frogpilot_thread(): if not time_validated: continue - theme_manager.update_active_theme(time_validated, frogpilot_toggles) + theme_manager.update_active_theme(time_validated, starpilot_toggles) if not started: thread_manager.run_with_lock(send_stats) - thread_manager.run_with_lock(update_checks, (now, model_manager, theme_manager, thread_manager, params, params_memory, frogpilot_toggles, True)) + thread_manager.run_with_lock(update_checks, (now, model_manager, theme_manager, thread_manager, params, params_memory, starpilot_toggles, True)) rate_keeper.keep_time() def main(): - frogpilot_thread() + starpilot_thread() if __name__ == "__main__": main() diff --git a/frogpilot/system/device_syncd.py b/starpilot/system/device_syncd.py similarity index 83% rename from frogpilot/system/device_syncd.py rename to starpilot/system/device_syncd.py index 967d69a4..42695cb8 100644 --- a/frogpilot/system/device_syncd.py +++ b/starpilot/system/device_syncd.py @@ -8,8 +8,8 @@ from openpilot.common.params import Params, ParamKeyFlag, ParamKeyType from openpilot.common.realtime import Ratekeeper from openpilot.common.time_helpers import system_time_valid -from openpilot.frogpilot.common.frogpilot_utilities import get_frogpilot_api_info, is_url_pingable -from openpilot.frogpilot.common.frogpilot_variables import EXCLUDED_KEYS, FROGPILOT_API, update_frogpilot_toggles +from openpilot.starpilot.common.starpilot_utilities import get_starpilot_api_info, is_url_pingable +from openpilot.starpilot.common.starpilot_variables import EXCLUDED_KEYS, STARPILOT_API, update_starpilot_toggles POND_PRESENCE_INTERVAL_ACTIVE = 60 POND_PRESENCE_INTERVAL_IDLE = 240 @@ -22,24 +22,24 @@ def check_toggles(started, params, sm=None, boot_run=False): if not params.get_bool("PondPaired"): return None - if not is_url_pingable(FROGPILOT_API): + if not is_url_pingable(STARPILOT_API): return None if not boot_run: - if started and not sm["frogpilotCarState"].isParked: + if started and not sm["starpilotCarState"].isParked: return None if sm["deviceState"].screenBrightnessPercent == 0: return None try: - api_token, _, device_type, dongle_id = get_frogpilot_api_info() + api_token, _, device_type, dongle_id = get_starpilot_api_info() if not dongle_id or not api_token: return None response = requests.get( - f"{FROGPILOT_API}/pond/toggles/pending", + f"{STARPILOT_API}/pond/toggles/pending", params={"dongle_id": dongle_id, "api_token": api_token}, - headers={"Content-Type": "application/json", "User-Agent": "frogpilot-api/1.0"}, + headers={"Content-Type": "application/json", "User-Agent": "starpilot-api/1.0"}, timeout=10, ) response.raise_for_status() @@ -76,16 +76,16 @@ def check_toggles(started, params, sm=None, boot_run=False): print(f"Skipping remote toggle {key}: {exception}") continue - update_frogpilot_toggles() + update_starpilot_toggles() requests.post( - f"{FROGPILOT_API}/pond/toggles/ack", + f"{STARPILOT_API}/pond/toggles/ack", json={ "api_token": api_token, "device": device_type, - "frogpilot_dongle_id": dongle_id, + "starpilot_dongle_id": dongle_id, }, - headers={"Content-Type": "application/json", "User-Agent": "frogpilot-api/1.0"}, + headers={"Content-Type": "application/json", "User-Agent": "starpilot-api/1.0"}, timeout=10, ).raise_for_status() @@ -104,7 +104,7 @@ def ping_pond_presence(interval, parked, started, state_changed): return try: - api_token, build_metadata, device_type, dongle_id = get_frogpilot_api_info() + api_token, build_metadata, device_type, dongle_id = get_starpilot_api_info() if not dongle_id or not api_token: return @@ -113,15 +113,15 @@ def ping_pond_presence(interval, parked, started, state_changed): "build_metadata": build_metadata, "device": device_type, "dongle_id": dongle_id, - "frogpilot_dongle_id": dongle_id, + "starpilot_dongle_id": dongle_id, "is_onroad": bool(started), "is_parked": bool(parked), } response = requests.post( - f"{FROGPILOT_API}/pond/presence/device", + f"{STARPILOT_API}/pond/presence/device", json=payload, - headers={"Content-Type": "application/json", "User-Agent": "frogpilot-api/1.0"}, + headers={"Content-Type": "application/json", "User-Agent": "starpilot-api/1.0"}, timeout=10, ) response.raise_for_status() @@ -132,11 +132,11 @@ def ping_pond_presence(interval, parked, started, state_changed): def upload_toggles(params): - if not is_url_pingable(FROGPILOT_API): + if not is_url_pingable(STARPILOT_API): return False try: - api_token, build_metadata, device_type, dongle_id = get_frogpilot_api_info() + api_token, build_metadata, device_type, dongle_id = get_starpilot_api_info() if not dongle_id or not api_token: return False @@ -164,19 +164,19 @@ def upload_toggles(params): "build_metadata": build_metadata, "device": device_type, "dongle_id": dongle_id, - "frogpilot_dongle_id": dongle_id, + "starpilot_dongle_id": dongle_id, "toggles": toggles, } response = requests.post( - f"{FROGPILOT_API}/pond/toggles/sync", + f"{STARPILOT_API}/pond/toggles/sync", json=payload, - headers={"Content-Type": "application/json", "User-Agent": "frogpilot-api/1.0"}, + headers={"Content-Type": "application/json", "User-Agent": "starpilot-api/1.0"}, timeout=10, ) response.raise_for_status() - print("Successfully uploaded toggles to FrogPilot.com") + print("Successfully uploaded toggles to StarPilot.com") return True except Exception as e: @@ -187,7 +187,7 @@ def upload_toggles(params): def pond_thread(): rate_keeper = Ratekeeper(1, None) - sm = messaging.SubMaster(["deviceState", "frogpilotCarState"]) + sm = messaging.SubMaster(["deviceState", "starpilotCarState"]) params = Params(return_defaults=True) @@ -201,7 +201,7 @@ def pond_thread(): while True: sm.update(0) - parked = sm["frogpilotCarState"].isParked + parked = sm["starpilotCarState"].isParked started = sm["deviceState"].started state_changed = started != previous_started or parked != previous_parked diff --git a/frogpilot/system/environment_variables b/starpilot/system/environment_variables similarity index 100% rename from frogpilot/system/environment_variables rename to starpilot/system/environment_variables diff --git a/frogpilot/system/environment_variables.backup b/starpilot/system/environment_variables.backup similarity index 100% rename from frogpilot/system/environment_variables.backup rename to starpilot/system/environment_variables.backup diff --git a/frogpilot/system/galaxy/bin/frpc_darwin_amd64 b/starpilot/system/galaxy/bin/frpc_darwin_amd64 similarity index 100% rename from frogpilot/system/galaxy/bin/frpc_darwin_amd64 rename to starpilot/system/galaxy/bin/frpc_darwin_amd64 diff --git a/frogpilot/system/galaxy/bin/frpc_darwin_arm64 b/starpilot/system/galaxy/bin/frpc_darwin_arm64 similarity index 100% rename from frogpilot/system/galaxy/bin/frpc_darwin_arm64 rename to starpilot/system/galaxy/bin/frpc_darwin_arm64 diff --git a/frogpilot/system/galaxy/bin/frpc_linux_amd64 b/starpilot/system/galaxy/bin/frpc_linux_amd64 similarity index 100% rename from frogpilot/system/galaxy/bin/frpc_linux_amd64 rename to starpilot/system/galaxy/bin/frpc_linux_amd64 diff --git a/frogpilot/system/galaxy/bin/frpc_linux_arm64 b/starpilot/system/galaxy/bin/frpc_linux_arm64 similarity index 100% rename from frogpilot/system/galaxy/bin/frpc_linux_arm64 rename to starpilot/system/galaxy/bin/frpc_linux_arm64 diff --git a/frogpilot/system/galaxy/galaxy.py b/starpilot/system/galaxy/galaxy.py similarity index 99% rename from frogpilot/system/galaxy/galaxy.py rename to starpilot/system/galaxy/galaxy.py index 8537ccc0..539931ab 100644 --- a/frogpilot/system/galaxy/galaxy.py +++ b/starpilot/system/galaxy/galaxy.py @@ -17,7 +17,7 @@ from openpilot.system.hardware import HARDWARE from openpilot.system.hardware.hw import Paths if HARDWARE.get_device_type() == "pc": - GALAXY_DIR = Path(Paths.comma_home()) / "frogpilot" / "data" / "galaxy" + GALAXY_DIR = Path(Paths.comma_home()) / "starpilot" / "data" / "galaxy" else: GALAXY_DIR = Path("/data/galaxy") FRPC_VERSION = "0.67.0" diff --git a/frogpilot/system/speed_limit_filler.py b/starpilot/system/speed_limit_filler.py similarity index 97% rename from frogpilot/system/speed_limit_filler.py rename to starpilot/system/speed_limit_filler.py index 4fa4882d..b5815b6b 100644 --- a/frogpilot/system/speed_limit_filler.py +++ b/starpilot/system/speed_limit_filler.py @@ -13,7 +13,7 @@ from openpilot.common.constants import CV from openpilot.common.gps import get_gps_location_service from openpilot.common.params import Params -from openpilot.frogpilot.common.frogpilot_utilities import calculate_distance_to_point, calculate_lane_width, is_url_pingable +from openpilot.starpilot.common.starpilot_utilities import calculate_distance_to_point, calculate_lane_width, is_url_pingable NetworkType = log.DeviceState.NetworkType @@ -46,11 +46,11 @@ class MapSpeedLogger: self.session = requests.Session() self.session.headers.update({"Accept-Language": "en"}) - self.session.headers.update({"User-Agent": "frogpilot-map-speed-logger/1.0 (https://github.com/FrogAi/FrogPilot)"}) + self.session.headers.update({"User-Agent": "starpilot-map-speed-logger/1.0 (https://github.com/FrogAi/StarPilot)"}) self.gps_location_service = get_gps_location_service(self.params) - self.sm = messaging.SubMaster(["deviceState", "frogpilotCarState", "frogpilotPlan", self.gps_location_service, "mapdOut", "modelV2"]) + self.sm = messaging.SubMaster(["deviceState", "starpilotCarState", "starpilotPlan", self.gps_location_service, "mapdOut", "modelV2"]) @property def can_make_overpass_request(self): @@ -91,8 +91,8 @@ class MapSpeedLogger: def get_speed_limit_source(self): sources = [ - (self.sm["frogpilotPlan"].slcMapboxSpeedLimit, "Mapbox"), - (self.sm["frogpilotCarState"].dashboardSpeedLimit, "Dashboard") + (self.sm["starpilotPlan"].slcMapboxSpeedLimit, "Mapbox"), + (self.sm["starpilotCarState"].dashboardSpeedLimit, "Dashboard") ] for speed_limit, source in sources: if speed_limit > 0: diff --git a/frogpilot/system/frogpilot_stats.py b/starpilot/system/starpilot_stats.py similarity index 78% rename from frogpilot/system/frogpilot_stats.py rename to starpilot/system/starpilot_stats.py index f1587271..35df7b62 100644 --- a/frogpilot/system/frogpilot_stats.py +++ b/starpilot/system/starpilot_stats.py @@ -18,8 +18,8 @@ except ModuleNotFoundError: from openpilot.system.hardware import HARDWARE from openpilot.system.version import get_build_metadata -from openpilot.frogpilot.common.frogpilot_utilities import clean_model_name, run_cmd -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles, params +from openpilot.starpilot.common.starpilot_utilities import clean_model_name, run_cmd +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles, params BASE_URL = "https://nominatim.openstreetmap.org" MINIMUM_POPULATION = 100_000 @@ -77,7 +77,7 @@ def get_city_center(latitude, longitude): try: with requests.Session() as session: session.headers.update({"Accept-Language": "en"}) - session.headers.update({"User-Agent": "frogpilot-city-center-checker/1.0 (https://github.com/FrogAi/FrogPilot)"}) + session.headers.update({"User-Agent": "starpilot-city-center-checker/1.0 (https://github.com/FrogAi/StarPilot)"}) response = session.get(f"{BASE_URL}/reverse", params={"addressdetails": 1, "extratags": 0, "format": "jsonv2", "lat": latitude, "lon": longitude, "namedetails": 0, "zoom": 14}, timeout=10) response.raise_for_status() @@ -170,19 +170,19 @@ def is_up_to_date(build_metadata): def send_stats(): try: build_metadata = get_build_metadata() - frogpilot_toggles = get_frogpilot_toggles() + starpilot_toggles = get_starpilot_toggles() - frogs_go_moo = getattr(frogpilot_toggles, "frogs_go_moo", getattr(frogpilot_toggles, "frogsgomoo_tweak", False)) + frogs_go_moo = getattr(starpilot_toggles, "frogs_go_moo", getattr(starpilot_toggles, "frogsgomoo_tweak", False)) if frogs_go_moo: return - if frogpilot_toggles.car_make == "mock": + if starpilot_toggles.car_make == "mock": return bucket = "StarPilot" org_ID = "StarPilot" url = "https://stats.firestar.link" - frogpilot_stats = _json_object(params.get("FrogPilotStats")) + starpilot_stats = _json_object(params.get("StarPilotStats")) location = _json_object(params.get("LastGPSPosition")) if not (location.get("latitude") and location.get("longitude")): @@ -192,11 +192,11 @@ def send_stats(): latitude, longitude, city, state, country = get_city_center(original_latitude, original_longitude) theme_sources = [ - frogpilot_toggles.icon_pack.replace("-animated", ""), - frogpilot_toggles.color_scheme, - frogpilot_toggles.distance_icons.replace("-animated", ""), - frogpilot_toggles.signal_icons.replace("-animated", ""), - frogpilot_toggles.sound_pack + starpilot_toggles.icon_pack.replace("-animated", ""), + starpilot_toggles.color_scheme, + starpilot_toggles.distance_icons.replace("-animated", ""), + starpilot_toggles.signal_icons.replace("-animated", ""), + starpilot_toggles.sound_pack ] theme_counter = Counter(theme_sources) @@ -208,46 +208,46 @@ def send_stats(): now = datetime.now(timezone.utc) device_type = HARDWARE.get_device_type() - stats_dongle_id = params.get("FrogPilotDongleId", encoding="utf-8") or params.get("DongleId", encoding="utf-8") or "unknown" + stats_dongle_id = params.get("StarPilotDongleId", encoding="utf-8") or params.get("DongleId", encoding="utf-8") or "unknown" user_point = ( Point("user_stats") - .tag("car_make", "GM" if frogpilot_toggles.car_make == "gm" else frogpilot_toggles.car_make.title()) - .tag("car_model", frogpilot_toggles.car_model) + .tag("car_make", "GM" if starpilot_toggles.car_make == "gm" else starpilot_toggles.car_make.title()) + .tag("car_model", starpilot_toggles.car_model) .tag("city", city) .tag("country", country) .tag("device", device_type) .tag("device_generation", get_device_generation(device_type)) - .tag("driving_model", clean_model_name(frogpilot_toggles.model_name)) + .tag("driving_model", clean_model_name(starpilot_toggles.model_name)) .tag("state", state) .tag("theme", selected_theme.title()) .tag("branch", build_metadata.channel) .tag("dongle_id", stats_dongle_id) - .field("blocked_user", frogpilot_toggles.block_user) - .field("current_months_kilometers", int(frogpilot_stats.get("CurrentMonthsKilometers", 0))) + .field("blocked_user", starpilot_toggles.block_user) + .field("current_months_kilometers", int(starpilot_stats.get("CurrentMonthsKilometers", 0))) .field("event", 1) - .field("frogpilot_drives", int(frogpilot_stats.get("FrogPilotDrives", 0))) - .field("frogpilot_hours", float(frogpilot_stats.get("FrogPilotSeconds", 0)) / (60 * 60)) - .field("frogpilot_miles", float(frogpilot_stats.get("FrogPilotMeters", 0)) * METER_TO_MILE) - .field("goat_scream", frogpilot_toggles.goat_scream_alert) - .field("has_cc_long", frogpilot_toggles.has_cc_long) - .field("has_openpilot_longitudinal", frogpilot_toggles.openpilot_longitudinal) - .field("has_pedal", frogpilot_toggles.has_pedal) - .field("has_sdsu", frogpilot_toggles.has_sdsu) - .field("has_sascm", getattr(frogpilot_toggles, "has_sascm", False)) - .field("has_zss", frogpilot_toggles.has_zss) + .field("starpilot_drives", int(starpilot_stats.get("StarPilotDrives", 0))) + .field("starpilot_hours", float(starpilot_stats.get("StarPilotSeconds", 0)) / (60 * 60)) + .field("starpilot_miles", float(starpilot_stats.get("StarPilotMeters", 0)) * METER_TO_MILE) + .field("goat_scream", starpilot_toggles.goat_scream_alert) + .field("has_cc_long", starpilot_toggles.has_cc_long) + .field("has_openpilot_longitudinal", starpilot_toggles.openpilot_longitudinal) + .field("has_pedal", starpilot_toggles.has_pedal) + .field("has_sdsu", starpilot_toggles.has_sdsu) + .field("has_sascm", getattr(starpilot_toggles, "has_sascm", False)) + .field("has_zss", starpilot_toggles.has_zss) .field("latitude", latitude) .field("longitude", longitude) - .field("rainbow_path", frogpilot_toggles.rainbow_path) - .field("random_events", frogpilot_toggles.random_events) - .field("total_aol_seconds", float(frogpilot_stats.get("AOLTime", 0))) - .field("total_lateral_seconds", float(frogpilot_stats.get("LateralTime", 0))) - .field("total_longitudinal_seconds", float(frogpilot_stats.get("LongitudinalTime", 0))) - .field("total_tracked_seconds", float(frogpilot_stats.get("TrackedTime", 0))) + .field("rainbow_path", starpilot_toggles.rainbow_path) + .field("random_events", starpilot_toggles.random_events) + .field("total_aol_seconds", float(starpilot_stats.get("AOLTime", 0))) + .field("total_lateral_seconds", float(starpilot_stats.get("LateralTime", 0))) + .field("total_longitudinal_seconds", float(starpilot_stats.get("LongitudinalTime", 0))) + .field("total_tracked_seconds", float(starpilot_stats.get("TrackedTime", 0))) .field("tuning_level", params.get_int("TuningLevel") + 1 if params.get_bool("TuningLevelConfirmed") else 0) .field("up_to_date", is_up_to_date(build_metadata)) - .field("using_stock_acc", not (frogpilot_toggles.has_cc_long or frogpilot_toggles.openpilot_longitudinal)) + .field("using_stock_acc", not (starpilot_toggles.has_cc_long or starpilot_toggles.openpilot_longitudinal)) .time(now) ) @@ -256,6 +256,6 @@ def send_stats(): client = InfluxDBClient(org=org_ID, token=org_ID, url=url) client.write_api(write_options=SYNCHRONOUS).write(bucket=bucket, org=org_ID, record=all_points) - print("Successfully sent FrogPilot stats!") + print("Successfully sent StarPilot stats!") except Exception as exception: - print(f"Failed to send FrogPilot stats: {exception}") + print(f"Failed to send StarPilot stats: {exception}") diff --git a/starpilot/system/starpilot_tracking.py b/starpilot/system/starpilot_tracking.py new file mode 100644 index 00000000..8ca630ae --- /dev/null +++ b/starpilot/system/starpilot_tracking.py @@ -0,0 +1,175 @@ +#!/usr/bin/env python3 +from openpilot.common.constants import CV +from openpilot.common.realtime import DT_MDL +from openpilot.selfdrive.car.cruise import V_CRUISE_MAX +from openpilot.selfdrive.selfdrived.events import STARPILOT_EVENT_NAME +from openpilot.selfdrive.selfdrived.selfdrived import LONGITUDINAL_PERSONALITY_MAP, State +from openpilot.selfdrive.selfdrived.state import ACTIVE_STATES +from openpilot.selfdrive.ui.soundd import StarPilotAudibleAlert + +from openpilot.starpilot.common.starpilot_utilities import clean_model_name +from openpilot.starpilot.controls.lib.starpilot_events import RANDOM_EVENT_END, RANDOM_EVENT_START +from openpilot.starpilot.controls.lib.weather_checker import WEATHER_CATEGORIES + +class StarPilotTracking: + def __init__(self, starpilot_planner, starpilot_toggles): + self.params = starpilot_planner.params + + self.starpilot_events = starpilot_planner.starpilot_events + self.starpilot_weather = starpilot_planner.starpilot_weather + + self.starpilot_stats = self.params.get("StarPilotStats") + self.starpilot_stats.pop("CurrentMonthsKilometers", None) + self.starpilot_stats.pop("ResetStats", None) + + self.drive_added = False + self.previously_enabled = False + + self.distance_since_override = 0 + self.tracked_time = 0 + + self.previous_random_events = set() + + self.previous_alert = None + self.previous_sound = StarPilotAudibleAlert.none + self.previous_state = State.disabled + + self.model_name = clean_model_name(starpilot_toggles.model_name) + + def update(self, now, time_validated, sm, starpilot_toggles): + v_cruise = min(sm["carState"].vCruiseCluster, V_CRUISE_MAX) * CV.KPH_TO_MS + v_ego = max(sm["carState"].vEgo, 0) + + distance_driven = v_ego * DT_MDL + self.previously_enabled |= sm["selfdriveState"].enabled or sm["starpilotCarState"].alwaysOnLateralEnabled + self.tracked_time += DT_MDL + + if sm["selfdriveState"].alertType not in (self.previous_alert, ""): + alert_name = sm["selfdriveState"].alertType.split('/')[0] + total_events = self.starpilot_stats.get("TotalEvents", {}) + total_events[alert_name] = total_events.get(alert_name, 0) + 1 + self.starpilot_stats["TotalEvents"] = total_events + self.previous_alert = sm["selfdriveState"].alertType + + if sm["selfdriveState"].enabled: + key = str(round(v_cruise, 2)) + total_cruise_speed_times = self.starpilot_stats.get("CruiseSpeedTimes", {}) + total_cruise_speed_times[key] = total_cruise_speed_times.get(key, 0) + DT_MDL + self.starpilot_stats["CruiseSpeedTimes"] = total_cruise_speed_times + + self.starpilot_stats["CurrentMonthsMeters"] = self.starpilot_stats.get("CurrentMonthsMeters", 0) + distance_driven + + if self.starpilot_weather.sunrise != 0 and self.starpilot_weather.sunset != 0: + if self.starpilot_weather.is_daytime: + self.starpilot_stats["DayTime"] = self.starpilot_stats.get("DayTime", 0) + DT_MDL + else: + self.starpilot_stats["NightTime"] = self.starpilot_stats.get("NightTime", 0) + DT_MDL + + if sm["selfdriveState"].state != self.previous_state: + if sm["selfdriveState"].state in ACTIVE_STATES and self.previous_state not in ACTIVE_STATES: + self.starpilot_stats["Engages"] = self.starpilot_stats.get("Engages", 0) + 1 + if starpilot_toggles.sound_pack == "frog": + self.starpilot_stats["FrogChirps"] = self.starpilot_stats.get("FrogChirps", 0) + 1 + + elif sm["selfdriveState"].state == State.disabled and self.previous_state in ACTIVE_STATES: + self.starpilot_stats["Disengages"] = self.starpilot_stats.get("Disengages", 0) + 1 + if starpilot_toggles.sound_pack == "frog": + self.starpilot_stats["FrogSqueaks"] = self.starpilot_stats.get("FrogSqueaks", 0) + 1 + + if sm["selfdriveState"].state == State.overriding and self.previous_state != State.overriding: + self.starpilot_stats["Overrides"] = self.starpilot_stats.get("Overrides", 0) + 1 + + self.previous_state = sm["selfdriveState"].state + + if sm["selfdriveState"].experimentalMode: + self.starpilot_stats["ExperimentalModeTime"] = self.starpilot_stats.get("ExperimentalModeTime", 0) + DT_MDL + + self.starpilot_stats["StarPilotMeters"] = self.starpilot_stats.get("StarPilotMeters", 0) + distance_driven + + if sm["starpilotSelfdriveState"].alertSound != self.previous_sound: + if sm["starpilotSelfdriveState"].alertSound == StarPilotAudibleAlert.goat: + self.starpilot_stats["GoatScreams"] = self.starpilot_stats.get("GoatScreams", 0) + 1 + + self.previous_sound = sm["starpilotSelfdriveState"].alertSound + + self.starpilot_stats["MaxAcceleration"] = max(self.starpilot_events.max_acceleration, self.starpilot_stats.get("MaxAcceleration", 0)) + + if sm["carControl"].latActive: + self.starpilot_stats["LateralTime"] = self.starpilot_stats.get("LateralTime", 0) + DT_MDL + if sm["carControl"].longActive: + self.starpilot_stats["LongitudinalTime"] = self.starpilot_stats.get("LongitudinalTime", 0) + DT_MDL + + personality_name = LONGITUDINAL_PERSONALITY_MAP.get(sm["selfdriveState"].personality, "Unknown").capitalize() + total_personality_times = self.starpilot_stats.get("PersonalityTimes", {}) + total_personality_times[personality_name] = total_personality_times.get(personality_name, 0) + DT_MDL + self.starpilot_stats["PersonalityTimes"] = total_personality_times + elif sm["starpilotCarState"].alwaysOnLateralEnabled: + self.starpilot_stats["AOLTime"] = self.starpilot_stats.get("AOLTime", 0) + DT_MDL + + if sm["selfdriveState"].state in (State.disabled, State.overriding): + self.distance_since_override = 0 + self.starpilot_stats["OverrideTime"] = self.starpilot_stats.get("OverrideTime", 0) + DT_MDL + else: + self.distance_since_override += distance_driven + self.starpilot_stats["LongestDistanceWithoutOverride"] = max(self.distance_since_override, self.starpilot_stats.get("LongestDistanceWithoutOverride", 0)) + + current_random_events = {event for event in self.starpilot_events.events.names if RANDOM_EVENT_START <= event <= RANDOM_EVENT_END} + if len(current_random_events) > 0: + new_events = current_random_events - self.previous_random_events + if new_events: + total_random_events = self.starpilot_stats.get("RandomEvents", {}) + for event in new_events: + event_name = STARPILOT_EVENT_NAME[event] + total_random_events[event_name] = total_random_events.get(event_name, 0) + 1 + self.starpilot_stats["RandomEvents"] = total_random_events + + self.previous_random_events = current_random_events + + if sm["carState"].standstill: + self.starpilot_stats["StandstillTime"] = self.starpilot_stats.get("StandstillTime", 0) + DT_MDL + if self.starpilot_events.stopped_for_light: + self.starpilot_stats["StopLightTime"] = self.starpilot_stats.get("StopLightTime", 0) + DT_MDL + + weather_api_calls = self.starpilot_stats.get("WeatherAPICalls", {}) + weather_api_calls["2.5"] = weather_api_calls.get("2.5", 0) + self.starpilot_weather.api_25_calls + weather_api_calls["3.0"] = weather_api_calls.get("3.0", 0) + self.starpilot_weather.api_3_calls + self.starpilot_stats["WeatherAPICalls"] = weather_api_calls + + self.starpilot_weather.api_25_calls = 0 + self.starpilot_weather.api_3_calls = 0 + + suffix = "unknown" + for category in WEATHER_CATEGORIES.values(): + if any(start <= self.starpilot_weather.weather_id <= end for start, end in category["ranges"]): + suffix = category["suffix"] + break + + weather_times = self.starpilot_stats.get("WeatherTimes", {}) + weather_times[suffix] = weather_times.get(suffix, 0) + DT_MDL + self.starpilot_stats["WeatherTimes"] = weather_times + + if self.tracked_time >= 60 and sm["carState"].standstill and self.previously_enabled: + if time_validated: + current_month = now.month + if current_month != self.starpilot_stats.get("Month"): + self.starpilot_stats.update({ + "CurrentMonthsMeters": 0, + "Month": current_month + }) + + self.starpilot_stats["StarPilotSeconds"] = self.starpilot_stats.get("StarPilotSeconds", 0) + self.tracked_time + + current_model = self.model_name + total_model_times = self.starpilot_stats.get("ModelTimes", {}) + total_model_times[current_model] = total_model_times.get(current_model, 0) + self.tracked_time + self.starpilot_stats["ModelTimes"] = total_model_times + + self.starpilot_stats["TrackedTime"] = self.starpilot_stats.get("TrackedTime", 0) + self.tracked_time + + self.tracked_time = 0 + + if not self.drive_added: + self.starpilot_stats["StarPilotDrives"] = self.starpilot_stats.get("StarPilotDrives", 0) + 1 + self.drive_added = True + + self.params.put_nonblocking("StarPilotStats", dict(sorted(self.starpilot_stats.items()))) diff --git a/frogpilot/system/the_pond/README.md b/starpilot/system/the_pond/README.md similarity index 100% rename from frogpilot/system/the_pond/README.md rename to starpilot/system/the_pond/README.md diff --git a/frogpilot/system/the_pond/assets/components/home/home.css b/starpilot/system/the_pond/assets/components/home/home.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/home/home.css rename to starpilot/system/the_pond/assets/components/home/home.css diff --git a/frogpilot/system/the_pond/assets/components/home/home.js b/starpilot/system/the_pond/assets/components/home/home.js similarity index 98% rename from frogpilot/system/the_pond/assets/components/home/home.js rename to starpilot/system/the_pond/assets/components/home/home.js index dd59486a..e3ba7cbe 100644 --- a/frogpilot/system/the_pond/assets/components/home/home.js +++ b/starpilot/system/the_pond/assets/components/home/home.js @@ -99,7 +99,7 @@ function renderDiskUsageSection(state) {
${statBlock("All Time", driveStats.all)} ${statBlock("Past Week", driveStats.week)} - ${statBlock("StarPilot", driveStats.frogpilot)} + ${statBlock("StarPilot", driveStats.starpilot)}

Disk Usage

diff --git a/frogpilot/system/the_pond/assets/components/main.css b/starpilot/system/the_pond/assets/components/main.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/main.css rename to starpilot/system/the_pond/assets/components/main.css diff --git a/frogpilot/system/the_pond/assets/components/modal.css b/starpilot/system/the_pond/assets/components/modal.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/modal.css rename to starpilot/system/the_pond/assets/components/modal.css diff --git a/frogpilot/system/the_pond/assets/components/modal.js b/starpilot/system/the_pond/assets/components/modal.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/modal.js rename to starpilot/system/the_pond/assets/components/modal.js diff --git a/frogpilot/system/the_pond/assets/components/navigation/navigation_destination.css b/starpilot/system/the_pond/assets/components/navigation/navigation_destination.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/navigation/navigation_destination.css rename to starpilot/system/the_pond/assets/components/navigation/navigation_destination.css diff --git a/frogpilot/system/the_pond/assets/components/navigation/navigation_destination.js b/starpilot/system/the_pond/assets/components/navigation/navigation_destination.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/navigation/navigation_destination.js rename to starpilot/system/the_pond/assets/components/navigation/navigation_destination.js diff --git a/frogpilot/system/the_pond/assets/components/navigation/navigation_keys.css b/starpilot/system/the_pond/assets/components/navigation/navigation_keys.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/navigation/navigation_keys.css rename to starpilot/system/the_pond/assets/components/navigation/navigation_keys.css diff --git a/frogpilot/system/the_pond/assets/components/navigation/navigation_keys.js b/starpilot/system/the_pond/assets/components/navigation/navigation_keys.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/navigation/navigation_keys.js rename to starpilot/system/the_pond/assets/components/navigation/navigation_keys.js diff --git a/frogpilot/system/the_pond/assets/components/navigation/navigation_utilities.js b/starpilot/system/the_pond/assets/components/navigation/navigation_utilities.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/navigation/navigation_utilities.js rename to starpilot/system/the_pond/assets/components/navigation/navigation_utilities.js diff --git a/frogpilot/system/the_pond/assets/components/recordings/dashcam_routes.css b/starpilot/system/the_pond/assets/components/recordings/dashcam_routes.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/recordings/dashcam_routes.css rename to starpilot/system/the_pond/assets/components/recordings/dashcam_routes.css diff --git a/frogpilot/system/the_pond/assets/components/recordings/dashcam_routes.js b/starpilot/system/the_pond/assets/components/recordings/dashcam_routes.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/recordings/dashcam_routes.js rename to starpilot/system/the_pond/assets/components/recordings/dashcam_routes.js diff --git a/frogpilot/system/the_pond/assets/components/recordings/screen_recordings.css b/starpilot/system/the_pond/assets/components/recordings/screen_recordings.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/recordings/screen_recordings.css rename to starpilot/system/the_pond/assets/components/recordings/screen_recordings.css diff --git a/frogpilot/system/the_pond/assets/components/recordings/screen_recordings.js b/starpilot/system/the_pond/assets/components/recordings/screen_recordings.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/recordings/screen_recordings.js rename to starpilot/system/the_pond/assets/components/recordings/screen_recordings.js diff --git a/frogpilot/system/the_pond/assets/components/router.js b/starpilot/system/the_pond/assets/components/router.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/router.js rename to starpilot/system/the_pond/assets/components/router.js diff --git a/frogpilot/system/the_pond/assets/components/settings.css b/starpilot/system/the_pond/assets/components/settings.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/settings.css rename to starpilot/system/the_pond/assets/components/settings.css diff --git a/frogpilot/system/the_pond/assets/components/settings.js b/starpilot/system/the_pond/assets/components/settings.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/settings.js rename to starpilot/system/the_pond/assets/components/settings.js diff --git a/frogpilot/system/the_pond/assets/components/sidebar.css b/starpilot/system/the_pond/assets/components/sidebar.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/sidebar.css rename to starpilot/system/the_pond/assets/components/sidebar.css diff --git a/frogpilot/system/the_pond/assets/components/sidebar.js b/starpilot/system/the_pond/assets/components/sidebar.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/sidebar.js rename to starpilot/system/the_pond/assets/components/sidebar.js diff --git a/frogpilot/system/the_pond/assets/components/tailscale/tailscale.css b/starpilot/system/the_pond/assets/components/tailscale/tailscale.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tailscale/tailscale.css rename to starpilot/system/the_pond/assets/components/tailscale/tailscale.css diff --git a/frogpilot/system/the_pond/assets/components/tailscale/tailscale.js b/starpilot/system/the_pond/assets/components/tailscale/tailscale.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tailscale/tailscale.js rename to starpilot/system/the_pond/assets/components/tailscale/tailscale.js diff --git a/frogpilot/system/the_pond/assets/components/tools/device_settings.css b/starpilot/system/the_pond/assets/components/tools/device_settings.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/device_settings.css rename to starpilot/system/the_pond/assets/components/tools/device_settings.css diff --git a/frogpilot/system/the_pond/assets/components/tools/device_settings.js b/starpilot/system/the_pond/assets/components/tools/device_settings.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/device_settings.js rename to starpilot/system/the_pond/assets/components/tools/device_settings.js diff --git a/frogpilot/system/the_pond/assets/components/tools/device_settings_layout.json b/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json similarity index 99% rename from frogpilot/system/the_pond/assets/components/tools/device_settings_layout.json rename to starpilot/system/the_pond/assets/components/tools/device_settings_layout.json index 5dae5329..025cd007 100644 --- a/frogpilot/system/the_pond/assets/components/tools/device_settings_layout.json +++ b/starpilot/system/the_pond/assets/components/tools/device_settings_layout.json @@ -1331,7 +1331,7 @@ { "key": "CustomUI", "label": "Driving Screen Widgets", - "description": "Custom FrogPilot widgets for the driving screen.", + "description": "Custom StarPilot widgets for the driving screen.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true @@ -1606,8 +1606,8 @@ }, { "key": "CustomAlerts", - "label": "FrogPilot Alerts", - "description": "Optional FrogPilot alerts that highlight driving events in a more noticeable way.", + "label": "StarPilot Alerts", + "description": "Optional StarPilot alerts that highlight driving events in a more noticeable way.", "data_type": "bool", "ui_type": "toggle", "is_parent_toggle": true diff --git a/frogpilot/system/the_pond/assets/components/tools/doors.css b/starpilot/system/the_pond/assets/components/tools/doors.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/doors.css rename to starpilot/system/the_pond/assets/components/tools/doors.css diff --git a/frogpilot/system/the_pond/assets/components/tools/doors.js b/starpilot/system/the_pond/assets/components/tools/doors.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/doors.js rename to starpilot/system/the_pond/assets/components/tools/doors.js diff --git a/frogpilot/system/the_pond/assets/components/tools/error_logs.css b/starpilot/system/the_pond/assets/components/tools/error_logs.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/error_logs.css rename to starpilot/system/the_pond/assets/components/tools/error_logs.css diff --git a/frogpilot/system/the_pond/assets/components/tools/error_logs.js b/starpilot/system/the_pond/assets/components/tools/error_logs.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/error_logs.js rename to starpilot/system/the_pond/assets/components/tools/error_logs.js diff --git a/frogpilot/system/the_pond/assets/components/tools/galaxy.css b/starpilot/system/the_pond/assets/components/tools/galaxy.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/galaxy.css rename to starpilot/system/the_pond/assets/components/tools/galaxy.css diff --git a/frogpilot/system/the_pond/assets/components/tools/galaxy.js b/starpilot/system/the_pond/assets/components/tools/galaxy.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/galaxy.js rename to starpilot/system/the_pond/assets/components/tools/galaxy.js diff --git a/frogpilot/system/the_pond/assets/components/tools/longitudinal_maneuvers.css b/starpilot/system/the_pond/assets/components/tools/longitudinal_maneuvers.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/longitudinal_maneuvers.css rename to starpilot/system/the_pond/assets/components/tools/longitudinal_maneuvers.css diff --git a/frogpilot/system/the_pond/assets/components/tools/longitudinal_maneuvers.js b/starpilot/system/the_pond/assets/components/tools/longitudinal_maneuvers.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/longitudinal_maneuvers.js rename to starpilot/system/the_pond/assets/components/tools/longitudinal_maneuvers.js diff --git a/frogpilot/system/the_pond/assets/components/tools/model_manager.css b/starpilot/system/the_pond/assets/components/tools/model_manager.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/model_manager.css rename to starpilot/system/the_pond/assets/components/tools/model_manager.css diff --git a/frogpilot/system/the_pond/assets/components/tools/model_manager.js b/starpilot/system/the_pond/assets/components/tools/model_manager.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/model_manager.js rename to starpilot/system/the_pond/assets/components/tools/model_manager.js diff --git a/frogpilot/system/the_pond/assets/components/tools/plots.css b/starpilot/system/the_pond/assets/components/tools/plots.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/plots.css rename to starpilot/system/the_pond/assets/components/tools/plots.css diff --git a/frogpilot/system/the_pond/assets/components/tools/plots.js b/starpilot/system/the_pond/assets/components/tools/plots.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/plots.js rename to starpilot/system/the_pond/assets/components/tools/plots.js diff --git a/frogpilot/system/the_pond/assets/components/tools/speed_limits.css b/starpilot/system/the_pond/assets/components/tools/speed_limits.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/speed_limits.css rename to starpilot/system/the_pond/assets/components/tools/speed_limits.css diff --git a/frogpilot/system/the_pond/assets/components/tools/speed_limits.js b/starpilot/system/the_pond/assets/components/tools/speed_limits.js similarity index 94% rename from frogpilot/system/the_pond/assets/components/tools/speed_limits.js rename to starpilot/system/the_pond/assets/components/tools/speed_limits.js index 06630e5f..31272d1e 100644 --- a/frogpilot/system/the_pond/assets/components/tools/speed_limits.js +++ b/starpilot/system/the_pond/assets/components/tools/speed_limits.js @@ -19,7 +19,7 @@ export function SpeedLimits() {

diff --git a/frogpilot/system/the_pond/assets/components/tools/testing_ground.css b/starpilot/system/the_pond/assets/components/tools/testing_ground.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/testing_ground.css rename to starpilot/system/the_pond/assets/components/tools/testing_ground.css diff --git a/frogpilot/system/the_pond/assets/components/tools/testing_ground.js b/starpilot/system/the_pond/assets/components/tools/testing_ground.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/testing_ground.js rename to starpilot/system/the_pond/assets/components/tools/testing_ground.js diff --git a/frogpilot/system/the_pond/assets/components/tools/theme_maker.css b/starpilot/system/the_pond/assets/components/tools/theme_maker.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/theme_maker.css rename to starpilot/system/the_pond/assets/components/tools/theme_maker.css diff --git a/frogpilot/system/the_pond/assets/components/tools/theme_maker.js b/starpilot/system/the_pond/assets/components/tools/theme_maker.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/theme_maker.js rename to starpilot/system/the_pond/assets/components/tools/theme_maker.js diff --git a/frogpilot/system/the_pond/assets/components/tools/tmux.css b/starpilot/system/the_pond/assets/components/tools/tmux.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/tmux.css rename to starpilot/system/the_pond/assets/components/tools/tmux.css diff --git a/frogpilot/system/the_pond/assets/components/tools/tmux.js b/starpilot/system/the_pond/assets/components/tools/tmux.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/tmux.js rename to starpilot/system/the_pond/assets/components/tools/tmux.js diff --git a/frogpilot/system/the_pond/assets/components/tools/toggles.css b/starpilot/system/the_pond/assets/components/tools/toggles.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/toggles.css rename to starpilot/system/the_pond/assets/components/tools/toggles.css diff --git a/frogpilot/system/the_pond/assets/components/tools/toggles.js b/starpilot/system/the_pond/assets/components/tools/toggles.js similarity index 99% rename from frogpilot/system/the_pond/assets/components/tools/toggles.js rename to starpilot/system/the_pond/assets/components/tools/toggles.js index 8050fe6c..351652ab 100644 --- a/frogpilot/system/the_pond/assets/components/tools/toggles.js +++ b/starpilot/system/the_pond/assets/components/tools/toggles.js @@ -104,7 +104,7 @@ export function ToggleControl() { ${() => state.showResetDefaultModal ? Modal({ title: "Reset Toggles", - message: "Are you sure you want to reset all toggles to their default FrogPilot values?", + message: "Are you sure you want to reset all toggles to their default StarPilot values?", onConfirm: resetTogglesToDefault, onCancel: () => { state.showResetDefaultModal = false; }, confirmText: "Reset to Default" diff --git a/frogpilot/system/the_pond/assets/components/tools/troubleshoot.css b/starpilot/system/the_pond/assets/components/tools/troubleshoot.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/troubleshoot.css rename to starpilot/system/the_pond/assets/components/tools/troubleshoot.css diff --git a/frogpilot/system/the_pond/assets/components/tools/troubleshoot.js b/starpilot/system/the_pond/assets/components/tools/troubleshoot.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/troubleshoot.js rename to starpilot/system/the_pond/assets/components/tools/troubleshoot.js diff --git a/frogpilot/system/the_pond/assets/components/tools/tsk_manager.css b/starpilot/system/the_pond/assets/components/tools/tsk_manager.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/tsk_manager.css rename to starpilot/system/the_pond/assets/components/tools/tsk_manager.css diff --git a/frogpilot/system/the_pond/assets/components/tools/tsk_manager.js b/starpilot/system/the_pond/assets/components/tools/tsk_manager.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/tsk_manager.js rename to starpilot/system/the_pond/assets/components/tools/tsk_manager.js diff --git a/frogpilot/system/the_pond/assets/components/tools/update_manager.css b/starpilot/system/the_pond/assets/components/tools/update_manager.css similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/update_manager.css rename to starpilot/system/the_pond/assets/components/tools/update_manager.css diff --git a/frogpilot/system/the_pond/assets/components/tools/update_manager.js b/starpilot/system/the_pond/assets/components/tools/update_manager.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/update_manager.js rename to starpilot/system/the_pond/assets/components/tools/update_manager.js diff --git a/frogpilot/system/the_pond/assets/components/tools/vehicle_features.js b/starpilot/system/the_pond/assets/components/tools/vehicle_features.js similarity index 100% rename from frogpilot/system/the_pond/assets/components/tools/vehicle_features.js rename to starpilot/system/the_pond/assets/components/tools/vehicle_features.js diff --git a/frogpilot/system/the_pond/assets/images/about.txt b/starpilot/system/the_pond/assets/images/about.txt similarity index 100% rename from frogpilot/system/the_pond/assets/images/about.txt rename to starpilot/system/the_pond/assets/images/about.txt diff --git a/frogpilot/system/the_pond/assets/images/android-chrome-192x192.png b/starpilot/system/the_pond/assets/images/android-chrome-192x192.png similarity index 100% rename from frogpilot/system/the_pond/assets/images/android-chrome-192x192.png rename to starpilot/system/the_pond/assets/images/android-chrome-192x192.png diff --git a/frogpilot/system/the_pond/assets/images/android-chrome-512x512.png b/starpilot/system/the_pond/assets/images/android-chrome-512x512.png similarity index 100% rename from frogpilot/system/the_pond/assets/images/android-chrome-512x512.png rename to starpilot/system/the_pond/assets/images/android-chrome-512x512.png diff --git a/frogpilot/system/the_pond/assets/images/apple-touch-icon.png b/starpilot/system/the_pond/assets/images/apple-touch-icon.png similarity index 100% rename from frogpilot/system/the_pond/assets/images/apple-touch-icon.png rename to starpilot/system/the_pond/assets/images/apple-touch-icon.png diff --git a/frogpilot/system/the_pond/assets/images/favicon-16x16.png b/starpilot/system/the_pond/assets/images/favicon-16x16.png similarity index 100% rename from frogpilot/system/the_pond/assets/images/favicon-16x16.png rename to starpilot/system/the_pond/assets/images/favicon-16x16.png diff --git a/frogpilot/system/the_pond/assets/images/favicon-32x32.png b/starpilot/system/the_pond/assets/images/favicon-32x32.png similarity index 100% rename from frogpilot/system/the_pond/assets/images/favicon-32x32.png rename to starpilot/system/the_pond/assets/images/favicon-32x32.png diff --git a/frogpilot/system/the_pond/assets/images/favicon.ico b/starpilot/system/the_pond/assets/images/favicon.ico similarity index 100% rename from frogpilot/system/the_pond/assets/images/favicon.ico rename to starpilot/system/the_pond/assets/images/favicon.ico diff --git a/frogpilot/system/the_pond/assets/images/favicon.svg b/starpilot/system/the_pond/assets/images/favicon.svg similarity index 100% rename from frogpilot/system/the_pond/assets/images/favicon.svg rename to starpilot/system/the_pond/assets/images/favicon.svg diff --git a/frogpilot/system/the_pond/assets/images/main_logo.png b/starpilot/system/the_pond/assets/images/main_logo.png similarity index 100% rename from frogpilot/system/the_pond/assets/images/main_logo.png rename to starpilot/system/the_pond/assets/images/main_logo.png diff --git a/frogpilot/system/the_pond/assets/images/safari-pinned-tab.svg b/starpilot/system/the_pond/assets/images/safari-pinned-tab.svg similarity index 100% rename from frogpilot/system/the_pond/assets/images/safari-pinned-tab.svg rename to starpilot/system/the_pond/assets/images/safari-pinned-tab.svg diff --git a/frogpilot/system/the_pond/assets/images/site.webmanifest b/starpilot/system/the_pond/assets/images/site.webmanifest similarity index 100% rename from frogpilot/system/the_pond/assets/images/site.webmanifest rename to starpilot/system/the_pond/assets/images/site.webmanifest diff --git a/frogpilot/system/the_pond/assets/js/snackbar.js b/starpilot/system/the_pond/assets/js/snackbar.js similarity index 100% rename from frogpilot/system/the_pond/assets/js/snackbar.js rename to starpilot/system/the_pond/assets/js/snackbar.js diff --git a/frogpilot/system/the_pond/assets/js/utils.js b/starpilot/system/the_pond/assets/js/utils.js similarity index 100% rename from frogpilot/system/the_pond/assets/js/utils.js rename to starpilot/system/the_pond/assets/js/utils.js diff --git a/frogpilot/system/the_pond/assets/manifest.json b/starpilot/system/the_pond/assets/manifest.json similarity index 100% rename from frogpilot/system/the_pond/assets/manifest.json rename to starpilot/system/the_pond/assets/manifest.json diff --git a/frogpilot/system/the_pond/assets/vendor/arrow-core.js b/starpilot/system/the_pond/assets/vendor/arrow-core.js similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/arrow-core.js rename to starpilot/system/the_pond/assets/vendor/arrow-core.js diff --git a/frogpilot/system/the_pond/assets/vendor/bootstrap-icons/bootstrap-icons.min.css b/starpilot/system/the_pond/assets/vendor/bootstrap-icons/bootstrap-icons.min.css similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/bootstrap-icons/bootstrap-icons.min.css rename to starpilot/system/the_pond/assets/vendor/bootstrap-icons/bootstrap-icons.min.css diff --git a/frogpilot/system/the_pond/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff b/starpilot/system/the_pond/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff rename to starpilot/system/the_pond/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff diff --git a/frogpilot/system/the_pond/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 b/starpilot/system/the_pond/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 rename to starpilot/system/the_pond/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 diff --git a/frogpilot/system/the_pond/assets/vendor/font-awesome/css/font-awesome.min.css b/starpilot/system/the_pond/assets/vendor/font-awesome/css/font-awesome.min.css similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/font-awesome/css/font-awesome.min.css rename to starpilot/system/the_pond/assets/vendor/font-awesome/css/font-awesome.min.css diff --git a/frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.eot b/starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.eot similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.eot rename to starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.eot diff --git a/frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.svg b/starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.svg similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.svg rename to starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.svg diff --git a/frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.ttf b/starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.ttf similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.ttf rename to starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.ttf diff --git a/frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff b/starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff rename to starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff diff --git a/frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff2 b/starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff2 similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff2 rename to starpilot/system/the_pond/assets/vendor/font-awesome/fonts/fontawesome-webfont.woff2 diff --git a/frogpilot/system/the_pond/assets/vendor/fonts/Inter-Bold.ttf b/starpilot/system/the_pond/assets/vendor/fonts/Inter-Bold.ttf similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/fonts/Inter-Bold.ttf rename to starpilot/system/the_pond/assets/vendor/fonts/Inter-Bold.ttf diff --git a/frogpilot/system/the_pond/assets/vendor/fonts/Inter-Regular.ttf b/starpilot/system/the_pond/assets/vendor/fonts/Inter-Regular.ttf similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/fonts/Inter-Regular.ttf rename to starpilot/system/the_pond/assets/vendor/fonts/Inter-Regular.ttf diff --git a/frogpilot/system/the_pond/assets/vendor/fonts/fonts.css b/starpilot/system/the_pond/assets/vendor/fonts/fonts.css similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/fonts/fonts.css rename to starpilot/system/the_pond/assets/vendor/fonts/fonts.css diff --git a/frogpilot/system/the_pond/assets/vendor/fonts/password.ttf b/starpilot/system/the_pond/assets/vendor/fonts/password.ttf similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/fonts/password.ttf rename to starpilot/system/the_pond/assets/vendor/fonts/password.ttf diff --git a/frogpilot/system/the_pond/assets/vendor/remix-router-1.3.1.js b/starpilot/system/the_pond/assets/vendor/remix-router-1.3.1.js similarity index 100% rename from frogpilot/system/the_pond/assets/vendor/remix-router-1.3.1.js rename to starpilot/system/the_pond/assets/vendor/remix-router-1.3.1.js diff --git a/frogpilot/system/the_pond/templates/index.html b/starpilot/system/the_pond/templates/index.html similarity index 100% rename from frogpilot/system/the_pond/templates/index.html rename to starpilot/system/the_pond/templates/index.html diff --git a/frogpilot/system/the_pond/the_pond.py b/starpilot/system/the_pond/the_pond.py similarity index 99% rename from frogpilot/system/the_pond/the_pond.py rename to starpilot/system/the_pond/the_pond.py index 4eb265bc..5107c16b 100644 --- a/frogpilot/system/the_pond/the_pond.py +++ b/starpilot/system/the_pond/the_pond.py @@ -38,11 +38,11 @@ from openpilot.system.loggerd.deleter import PRESERVE_ATTR_NAME, PRESERVE_ATTR_V from openpilot.system.version import get_build_metadata from panda import Panda -from openpilot.frogpilot.assets.theme_manager import HOLIDAY_THEME_PATH, THEME_COMPONENT_PARAMS -from openpilot.frogpilot.common.frogpilot_utilities import delete_file, get_lock_status, run_cmd -from openpilot.frogpilot.common.frogpilot_variables import ACTIVE_THEME_PATH, ERROR_LOGS_PATH, EXCLUDED_KEYS, RESOURCES_REPO, SCREEN_RECORDINGS_PATH, THEME_SAVE_PATH,\ - update_frogpilot_toggles -from openpilot.frogpilot.common.testing_grounds import ( +from openpilot.starpilot.assets.theme_manager import HOLIDAY_THEME_PATH, THEME_COMPONENT_PARAMS +from openpilot.starpilot.common.starpilot_utilities import delete_file, get_lock_status, run_cmd +from openpilot.starpilot.common.starpilot_variables import ACTIVE_THEME_PATH, ERROR_LOGS_PATH, EXCLUDED_KEYS, LEGACY_STARPILOT_PARAM_RENAMES, RESOURCES_REPO, SCREEN_RECORDINGS_PATH, THEME_SAVE_PATH,\ + update_starpilot_toggles +from openpilot.starpilot.common.testing_grounds import ( DEFAULT_TESTING_GROUND_VARIANT as SHARED_DEFAULT_TESTING_GROUND_VARIANT, TESTING_GROUND_VARIANT_LABELS as SHARED_TESTING_GROUND_VARIANT_LABELS, TESTING_GROUND_VARIANTS as SHARED_TESTING_GROUND_VARIANTS, @@ -50,7 +50,7 @@ from openpilot.frogpilot.common.testing_grounds import ( TESTING_GROUNDS_SLOT_DEFINITIONS as SHARED_TESTING_GROUNDS_SLOT_DEFINITIONS, TESTING_GROUNDS_STATE_PATH as SHARED_TESTING_GROUNDS_STATE_PATH, ) -from openpilot.frogpilot.system.the_pond import utilities +from openpilot.starpilot.system.the_pond import utilities DISCORD_WEBHOOK_URL = os.getenv("DISCORD_WEBHOOK_URL") @@ -155,7 +155,7 @@ def _install_pond_web_deps(): return True _POND_WEB_DEPS_ERROR = RuntimeError( - "Missing local Flask deps (expected in frogpilot/third_party or /data/pond_deps)." + "Missing local Flask deps (expected in starpilot/third_party or /data/pond_deps)." ) return False @@ -373,7 +373,7 @@ def _build_default_params(): )) return defaults -frogpilot_default_params = _build_default_params() +starpilot_default_params = _build_default_params() params = ParamsCompat(_params_raw) params_memory = ParamsCompat(_params_memory_raw) @@ -495,7 +495,7 @@ _TESTING_GROUNDS_DEFAULT_VARIANT = SHARED_DEFAULT_TESTING_GROUND_VARIANT _TESTING_GROUNDS_VARIANTS = set(SHARED_TESTING_GROUND_VARIANTS) or {_TESTING_GROUNDS_DEFAULT_VARIANT} _TESTING_GROUNDS_LOCK = threading.Lock() _TESTING_GROUNDS_STATE_PATH = SHARED_TESTING_GROUNDS_STATE_PATH -# Slot labels live in frogpilot/common/testing_grounds.py. +# Slot labels live in starpilot/common/testing_grounds.py. _TESTING_GROUNDS_SLOT_DEFINITIONS = [dict(slot) for slot in SHARED_TESTING_GROUNDS_SLOT_DEFINITIONS] _TESTING_GROUNDS_VARIANT_LABELS_BY_SLOT = { str(slot_id or "").strip(): dict(labels or {}) @@ -1604,10 +1604,10 @@ _cached_default_values = None def _get_param_type_info(): global _cached_allowed_keys, _cached_param_types if _cached_allowed_keys is None: - _cached_allowed_keys = {k for k, _, _, _ in frogpilot_default_params if k not in EXCLUDED_KEYS} + _cached_allowed_keys = {k for k, _, _, _ in starpilot_default_params if k not in EXCLUDED_KEYS} types = {} - for k, default_val, _, _ in frogpilot_default_params: + for k, default_val, _, _ in starpilot_default_params: if k in _cached_allowed_keys: if default_val in ("0", "1", b"0", b"1") or isinstance(default_val, bool): types[k] = bool @@ -1641,7 +1641,7 @@ def _get_default_param_values(): if _cached_default_values is None: _cached_default_values = { key: default_val - for key, default_val, _, _ in frogpilot_default_params + for key, default_val, _, _ in starpilot_default_params if key not in EXCLUDED_KEYS } return _cached_default_values @@ -2006,7 +2006,7 @@ def _reset_troubleshoot_section(section_id): updated_keys.append(key) if updated_keys: - update_frogpilot_toggles() + update_starpilot_toggles() return { "sectionId": section_definition["id"], @@ -2724,7 +2724,7 @@ def setup(app): normalized_make = _normalize_fingerprint_make_key(str_val) stored_make = catalog["make_label_by_key"].get(normalized_make, str_val.strip()) params.put("CarMake", stored_make) - update_frogpilot_toggles() + update_starpilot_toggles() return jsonify({ "message": "Car make updated successfully.", "updated": {"CarMake": stored_make}, @@ -2753,7 +2753,7 @@ def setup(app): params.put("CarMake", make_label) updated["CarMake"] = make_label - update_frogpilot_toggles() + update_starpilot_toggles() return jsonify({ "message": f"Fingerprint set to '{model_label or selected_model}'.", "updated": updated, @@ -2803,7 +2803,7 @@ def setup(app): metered_enabled = str_val.strip() in ("1", "true", "True") gsm_metered_apply_result = _apply_cellular_metered_setting(metered_enabled) - update_frogpilot_toggles() + update_starpilot_toggles() response = {"message": f"Parameter '{key}' updated successfully."} if gsm_metered_apply_result is not None: @@ -2849,7 +2849,7 @@ def setup(app): allowed_keys, types = _get_param_type_info() defaults_lookup = { key: default_val - for key, default_val, _, _ in frogpilot_default_params + for key, default_val, _, _ in starpilot_default_params if key in allowed_keys } @@ -3042,7 +3042,7 @@ def setup(app): return jsonify({"error": "Cannot refresh model manifest while a download is in progress."}), 409 try: - from openpilot.frogpilot.assets.model_manager import ModelManager + from openpilot.starpilot.assets.model_manager import ModelManager # ModelManager expects raw Params semantics (encoding-less get -> str, not legacy bytes). manager = ModelManager(_params_raw, _params_memory_raw) @@ -3541,11 +3541,11 @@ def setup(app): build_metadata = get_build_metadata() short_branch = build_metadata.channel - if short_branch == "FrogPilot-Development": + if short_branch == "StarPilot-Development": env = "Development" elif build_metadata.release_channel: env = "Release" - elif short_branch == "FrogPilot-Testing": + elif short_branch == "StarPilot-Testing": env = "Testing" elif build_metadata.tested_channel: env = "Staging" @@ -4020,7 +4020,7 @@ def setup(app): params.put_bool("PersonalizeOpenpilot", True) params_memory.put_bool("UseActiveTheme", True) - update_frogpilot_toggles() + update_starpilot_toggles() return {"message": "Theme applied successfully!"}, 200 @app.route("/api/themes/asset//") @@ -4645,7 +4645,7 @@ def setup(app): @app.route("/api/toggles/backup", methods=["POST"]) def backup_toggle_values(): toggle_values = {} - for key, _, _, _ in frogpilot_default_params: + for key, _, _, _ in starpilot_default_params: if key in EXCLUDED_KEYS: continue @@ -4671,14 +4671,15 @@ def setup(app): if not request_data or "data" not in request_data: return jsonify({"success": False, "message": "Missing 'data' in request."}), 400 - allowed_keys = {key for key, _, _, _ in frogpilot_default_params if key not in EXCLUDED_KEYS} + allowed_keys = {key for key, _, _, _ in starpilot_default_params if key not in EXCLUDED_KEYS} toggle_values = utilities.decode_parameters(request_data["data"]) for key, value in toggle_values.items(): - if key in allowed_keys: - params.put(key, value) + mapped_key = LEGACY_STARPILOT_PARAM_RENAMES.get(key, key) + if mapped_key in allowed_keys: + params.put(mapped_key, value) - update_frogpilot_toggles() + update_starpilot_toggles() return jsonify({"success": True, "message": "Toggles restored!"}) @app.route("/api/toggles/reset_default", methods=["POST"]) @@ -4693,7 +4694,7 @@ def setup(app): @app.route("/mapbox-help/", methods=["GET"]) def serve_mapbox_help(filename): - return send_from_directory("/data/openpilot/frogpilot/navigation/navigation_training", filename) + return send_from_directory("/data/openpilot/starpilot/navigation/navigation_training", filename) @app.route("/playground", methods=["GET"]) def playground(): diff --git a/frogpilot/system/the_pond/utilities.py b/starpilot/system/the_pond/utilities.py similarity index 98% rename from frogpilot/system/the_pond/utilities.py rename to starpilot/system/the_pond/utilities.py index c57ff296..24cf28be 100644 --- a/frogpilot/system/the_pond/utilities.py +++ b/starpilot/system/the_pond/utilities.py @@ -21,8 +21,8 @@ from openpilot.system.loggerd.deleter import PRESERVE_ATTR_NAME, PRESERVE_ATTR_V from openpilot.system.loggerd.uploader import listdir_by_creation from openpilot.tools.lib.route import SegmentName -from openpilot.frogpilot.common.frogpilot_variables import THEME_SAVE_PATH, VIDEO_CACHE_PATH -from openpilot.frogpilot.assets.theme_manager import HOLIDAY_THEME_PATH +from openpilot.starpilot.common.starpilot_variables import THEME_SAVE_PATH, VIDEO_CACHE_PATH +from openpilot.starpilot.assets.theme_manager import HOLIDAY_THEME_PATH LOG_CANDIDATES = [ "qlog", @@ -526,7 +526,7 @@ def get_disk_usage(): def get_drive_stats(): stats = _decode_json_param(params.get("ApiCache_DriveStats"), {}) - frogpilot_stats = _decode_json_param(params.get("FrogPilotStats"), {}) + starpilot_stats = _decode_json_param(params.get("StarPilotStats"), {}) is_metric = params.get_bool("IsMetric") unit = "kilometers" if is_metric else "miles" @@ -542,10 +542,10 @@ def get_drive_stats(): stats["all"] = process("all") stats["week"] = process("week") - stats["frogpilot"] = { - "distance": frogpilot_stats.get("FrogPilotMeters", 0) * (0.001 if is_metric else METER_TO_MILE), - "hours": frogpilot_stats.get("FrogPilotSeconds", 0) / (60 * 60), - "drives": frogpilot_stats.get("FrogPilotDrives", 0), + stats["starpilot"] = { + "distance": starpilot_stats.get("StarPilotMeters", 0) * (0.001 if is_metric else METER_TO_MILE), + "hours": starpilot_stats.get("StarPilotSeconds", 0) / (60 * 60), + "drives": starpilot_stats.get("StarPilotDrives", 0), "unit": unit } diff --git a/frogpilot/third_party/blinker-1.9.0.dist-info/INSTALLER b/starpilot/third_party/blinker-1.9.0.dist-info/INSTALLER similarity index 100% rename from frogpilot/third_party/blinker-1.9.0.dist-info/INSTALLER rename to starpilot/third_party/blinker-1.9.0.dist-info/INSTALLER diff --git a/frogpilot/third_party/blinker-1.9.0.dist-info/LICENSE.txt b/starpilot/third_party/blinker-1.9.0.dist-info/LICENSE.txt similarity index 100% rename from frogpilot/third_party/blinker-1.9.0.dist-info/LICENSE.txt rename to starpilot/third_party/blinker-1.9.0.dist-info/LICENSE.txt diff --git a/frogpilot/third_party/blinker-1.9.0.dist-info/METADATA b/starpilot/third_party/blinker-1.9.0.dist-info/METADATA similarity index 100% rename from frogpilot/third_party/blinker-1.9.0.dist-info/METADATA rename to starpilot/third_party/blinker-1.9.0.dist-info/METADATA diff --git a/frogpilot/third_party/blinker-1.9.0.dist-info/RECORD b/starpilot/third_party/blinker-1.9.0.dist-info/RECORD similarity index 100% rename from frogpilot/third_party/blinker-1.9.0.dist-info/RECORD rename to starpilot/third_party/blinker-1.9.0.dist-info/RECORD diff --git a/frogpilot/third_party/blinker-1.9.0.dist-info/REQUESTED b/starpilot/third_party/blinker-1.9.0.dist-info/REQUESTED similarity index 100% rename from frogpilot/third_party/blinker-1.9.0.dist-info/REQUESTED rename to starpilot/third_party/blinker-1.9.0.dist-info/REQUESTED diff --git a/frogpilot/third_party/blinker-1.9.0.dist-info/WHEEL b/starpilot/third_party/blinker-1.9.0.dist-info/WHEEL similarity index 100% rename from frogpilot/third_party/blinker-1.9.0.dist-info/WHEEL rename to starpilot/third_party/blinker-1.9.0.dist-info/WHEEL diff --git a/frogpilot/third_party/blinker/__init__.py b/starpilot/third_party/blinker/__init__.py similarity index 100% rename from frogpilot/third_party/blinker/__init__.py rename to starpilot/third_party/blinker/__init__.py diff --git a/frogpilot/third_party/blinker/_utilities.py b/starpilot/third_party/blinker/_utilities.py similarity index 100% rename from frogpilot/third_party/blinker/_utilities.py rename to starpilot/third_party/blinker/_utilities.py diff --git a/frogpilot/third_party/blinker/base.py b/starpilot/third_party/blinker/base.py similarity index 100% rename from frogpilot/third_party/blinker/base.py rename to starpilot/third_party/blinker/base.py diff --git a/frogpilot/third_party/blinker/py.typed b/starpilot/third_party/blinker/py.typed similarity index 100% rename from frogpilot/third_party/blinker/py.typed rename to starpilot/third_party/blinker/py.typed diff --git a/frogpilot/third_party/certifi/__init__.py b/starpilot/third_party/certifi/__init__.py similarity index 100% rename from frogpilot/third_party/certifi/__init__.py rename to starpilot/third_party/certifi/__init__.py diff --git a/frogpilot/third_party/certifi/__main__.py b/starpilot/third_party/certifi/__main__.py similarity index 100% rename from frogpilot/third_party/certifi/__main__.py rename to starpilot/third_party/certifi/__main__.py diff --git a/frogpilot/third_party/certifi/cacert.pem b/starpilot/third_party/certifi/cacert.pem similarity index 100% rename from frogpilot/third_party/certifi/cacert.pem rename to starpilot/third_party/certifi/cacert.pem diff --git a/frogpilot/third_party/certifi/core.py b/starpilot/third_party/certifi/core.py similarity index 100% rename from frogpilot/third_party/certifi/core.py rename to starpilot/third_party/certifi/core.py diff --git a/frogpilot/third_party/certifi/py.typed b/starpilot/third_party/certifi/py.typed similarity index 100% rename from frogpilot/third_party/certifi/py.typed rename to starpilot/third_party/certifi/py.typed diff --git a/frogpilot/third_party/click-8.3.1.dist-info/INSTALLER b/starpilot/third_party/click-8.3.1.dist-info/INSTALLER similarity index 100% rename from frogpilot/third_party/click-8.3.1.dist-info/INSTALLER rename to starpilot/third_party/click-8.3.1.dist-info/INSTALLER diff --git a/frogpilot/third_party/click-8.3.1.dist-info/METADATA b/starpilot/third_party/click-8.3.1.dist-info/METADATA similarity index 100% rename from frogpilot/third_party/click-8.3.1.dist-info/METADATA rename to starpilot/third_party/click-8.3.1.dist-info/METADATA diff --git a/frogpilot/third_party/click-8.3.1.dist-info/RECORD b/starpilot/third_party/click-8.3.1.dist-info/RECORD similarity index 100% rename from frogpilot/third_party/click-8.3.1.dist-info/RECORD rename to starpilot/third_party/click-8.3.1.dist-info/RECORD diff --git a/frogpilot/third_party/click-8.3.1.dist-info/REQUESTED b/starpilot/third_party/click-8.3.1.dist-info/REQUESTED similarity index 100% rename from frogpilot/third_party/click-8.3.1.dist-info/REQUESTED rename to starpilot/third_party/click-8.3.1.dist-info/REQUESTED diff --git a/frogpilot/third_party/click-8.3.1.dist-info/WHEEL b/starpilot/third_party/click-8.3.1.dist-info/WHEEL similarity index 100% rename from frogpilot/third_party/click-8.3.1.dist-info/WHEEL rename to starpilot/third_party/click-8.3.1.dist-info/WHEEL diff --git a/frogpilot/third_party/click-8.3.1.dist-info/licenses/LICENSE.txt b/starpilot/third_party/click-8.3.1.dist-info/licenses/LICENSE.txt similarity index 100% rename from frogpilot/third_party/click-8.3.1.dist-info/licenses/LICENSE.txt rename to starpilot/third_party/click-8.3.1.dist-info/licenses/LICENSE.txt diff --git a/frogpilot/third_party/click/__init__.py b/starpilot/third_party/click/__init__.py similarity index 100% rename from frogpilot/third_party/click/__init__.py rename to starpilot/third_party/click/__init__.py diff --git a/frogpilot/third_party/click/_compat.py b/starpilot/third_party/click/_compat.py similarity index 100% rename from frogpilot/third_party/click/_compat.py rename to starpilot/third_party/click/_compat.py diff --git a/frogpilot/third_party/click/_termui_impl.py b/starpilot/third_party/click/_termui_impl.py similarity index 100% rename from frogpilot/third_party/click/_termui_impl.py rename to starpilot/third_party/click/_termui_impl.py diff --git a/frogpilot/third_party/click/_textwrap.py b/starpilot/third_party/click/_textwrap.py similarity index 100% rename from frogpilot/third_party/click/_textwrap.py rename to starpilot/third_party/click/_textwrap.py diff --git a/frogpilot/third_party/click/_utils.py b/starpilot/third_party/click/_utils.py similarity index 100% rename from frogpilot/third_party/click/_utils.py rename to starpilot/third_party/click/_utils.py diff --git a/frogpilot/third_party/click/_winconsole.py b/starpilot/third_party/click/_winconsole.py similarity index 100% rename from frogpilot/third_party/click/_winconsole.py rename to starpilot/third_party/click/_winconsole.py diff --git a/frogpilot/third_party/click/core.py b/starpilot/third_party/click/core.py similarity index 100% rename from frogpilot/third_party/click/core.py rename to starpilot/third_party/click/core.py diff --git a/frogpilot/third_party/click/decorators.py b/starpilot/third_party/click/decorators.py similarity index 100% rename from frogpilot/third_party/click/decorators.py rename to starpilot/third_party/click/decorators.py diff --git a/frogpilot/third_party/click/exceptions.py b/starpilot/third_party/click/exceptions.py similarity index 100% rename from frogpilot/third_party/click/exceptions.py rename to starpilot/third_party/click/exceptions.py diff --git a/frogpilot/third_party/click/formatting.py b/starpilot/third_party/click/formatting.py similarity index 100% rename from frogpilot/third_party/click/formatting.py rename to starpilot/third_party/click/formatting.py diff --git a/frogpilot/third_party/click/globals.py b/starpilot/third_party/click/globals.py similarity index 100% rename from frogpilot/third_party/click/globals.py rename to starpilot/third_party/click/globals.py diff --git a/frogpilot/third_party/click/parser.py b/starpilot/third_party/click/parser.py similarity index 100% rename from frogpilot/third_party/click/parser.py rename to starpilot/third_party/click/parser.py diff --git a/frogpilot/third_party/click/py.typed b/starpilot/third_party/click/py.typed similarity index 100% rename from frogpilot/third_party/click/py.typed rename to starpilot/third_party/click/py.typed diff --git a/frogpilot/third_party/click/shell_completion.py b/starpilot/third_party/click/shell_completion.py similarity index 100% rename from frogpilot/third_party/click/shell_completion.py rename to starpilot/third_party/click/shell_completion.py diff --git a/frogpilot/third_party/click/termui.py b/starpilot/third_party/click/termui.py similarity index 100% rename from frogpilot/third_party/click/termui.py rename to starpilot/third_party/click/termui.py diff --git a/frogpilot/third_party/click/testing.py b/starpilot/third_party/click/testing.py similarity index 100% rename from frogpilot/third_party/click/testing.py rename to starpilot/third_party/click/testing.py diff --git a/frogpilot/third_party/click/types.py b/starpilot/third_party/click/types.py similarity index 100% rename from frogpilot/third_party/click/types.py rename to starpilot/third_party/click/types.py diff --git a/frogpilot/third_party/click/utils.py b/starpilot/third_party/click/utils.py similarity index 100% rename from frogpilot/third_party/click/utils.py rename to starpilot/third_party/click/utils.py diff --git a/frogpilot/third_party/dateutil/__init__.py b/starpilot/third_party/dateutil/__init__.py similarity index 100% rename from frogpilot/third_party/dateutil/__init__.py rename to starpilot/third_party/dateutil/__init__.py diff --git a/frogpilot/third_party/dateutil/_common.py b/starpilot/third_party/dateutil/_common.py similarity index 100% rename from frogpilot/third_party/dateutil/_common.py rename to starpilot/third_party/dateutil/_common.py diff --git a/frogpilot/third_party/dateutil/_version.py b/starpilot/third_party/dateutil/_version.py similarity index 100% rename from frogpilot/third_party/dateutil/_version.py rename to starpilot/third_party/dateutil/_version.py diff --git a/frogpilot/third_party/dateutil/easter.py b/starpilot/third_party/dateutil/easter.py similarity index 100% rename from frogpilot/third_party/dateutil/easter.py rename to starpilot/third_party/dateutil/easter.py diff --git a/frogpilot/third_party/dateutil/parser/__init__.py b/starpilot/third_party/dateutil/parser/__init__.py similarity index 100% rename from frogpilot/third_party/dateutil/parser/__init__.py rename to starpilot/third_party/dateutil/parser/__init__.py diff --git a/frogpilot/third_party/dateutil/parser/_parser.py b/starpilot/third_party/dateutil/parser/_parser.py similarity index 100% rename from frogpilot/third_party/dateutil/parser/_parser.py rename to starpilot/third_party/dateutil/parser/_parser.py diff --git a/frogpilot/third_party/dateutil/parser/isoparser.py b/starpilot/third_party/dateutil/parser/isoparser.py similarity index 100% rename from frogpilot/third_party/dateutil/parser/isoparser.py rename to starpilot/third_party/dateutil/parser/isoparser.py diff --git a/frogpilot/third_party/dateutil/relativedelta.py b/starpilot/third_party/dateutil/relativedelta.py similarity index 100% rename from frogpilot/third_party/dateutil/relativedelta.py rename to starpilot/third_party/dateutil/relativedelta.py diff --git a/frogpilot/third_party/dateutil/rrule.py b/starpilot/third_party/dateutil/rrule.py similarity index 100% rename from frogpilot/third_party/dateutil/rrule.py rename to starpilot/third_party/dateutil/rrule.py diff --git a/frogpilot/third_party/dateutil/tz/__init__.py b/starpilot/third_party/dateutil/tz/__init__.py similarity index 100% rename from frogpilot/third_party/dateutil/tz/__init__.py rename to starpilot/third_party/dateutil/tz/__init__.py diff --git a/frogpilot/third_party/dateutil/tz/_common.py b/starpilot/third_party/dateutil/tz/_common.py similarity index 100% rename from frogpilot/third_party/dateutil/tz/_common.py rename to starpilot/third_party/dateutil/tz/_common.py diff --git a/frogpilot/third_party/dateutil/tz/_factories.py b/starpilot/third_party/dateutil/tz/_factories.py similarity index 100% rename from frogpilot/third_party/dateutil/tz/_factories.py rename to starpilot/third_party/dateutil/tz/_factories.py diff --git a/frogpilot/third_party/dateutil/tz/tz.py b/starpilot/third_party/dateutil/tz/tz.py similarity index 100% rename from frogpilot/third_party/dateutil/tz/tz.py rename to starpilot/third_party/dateutil/tz/tz.py diff --git a/frogpilot/third_party/dateutil/tz/win.py b/starpilot/third_party/dateutil/tz/win.py similarity index 100% rename from frogpilot/third_party/dateutil/tz/win.py rename to starpilot/third_party/dateutil/tz/win.py diff --git a/frogpilot/third_party/dateutil/tzwin.py b/starpilot/third_party/dateutil/tzwin.py similarity index 100% rename from frogpilot/third_party/dateutil/tzwin.py rename to starpilot/third_party/dateutil/tzwin.py diff --git a/frogpilot/third_party/dateutil/utils.py b/starpilot/third_party/dateutil/utils.py similarity index 100% rename from frogpilot/third_party/dateutil/utils.py rename to starpilot/third_party/dateutil/utils.py diff --git a/frogpilot/third_party/dateutil/zoneinfo/__init__.py b/starpilot/third_party/dateutil/zoneinfo/__init__.py similarity index 100% rename from frogpilot/third_party/dateutil/zoneinfo/__init__.py rename to starpilot/third_party/dateutil/zoneinfo/__init__.py diff --git a/frogpilot/third_party/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz b/starpilot/third_party/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz similarity index 100% rename from frogpilot/third_party/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz rename to starpilot/third_party/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz diff --git a/frogpilot/third_party/dateutil/zoneinfo/rebuild.py b/starpilot/third_party/dateutil/zoneinfo/rebuild.py similarity index 100% rename from frogpilot/third_party/dateutil/zoneinfo/rebuild.py rename to starpilot/third_party/dateutil/zoneinfo/rebuild.py diff --git a/frogpilot/third_party/flask-3.1.3.dist-info/INSTALLER b/starpilot/third_party/flask-3.1.3.dist-info/INSTALLER similarity index 100% rename from frogpilot/third_party/flask-3.1.3.dist-info/INSTALLER rename to starpilot/third_party/flask-3.1.3.dist-info/INSTALLER diff --git a/frogpilot/third_party/flask-3.1.3.dist-info/METADATA b/starpilot/third_party/flask-3.1.3.dist-info/METADATA similarity index 100% rename from frogpilot/third_party/flask-3.1.3.dist-info/METADATA rename to starpilot/third_party/flask-3.1.3.dist-info/METADATA diff --git a/frogpilot/third_party/flask-3.1.3.dist-info/RECORD b/starpilot/third_party/flask-3.1.3.dist-info/RECORD similarity index 100% rename from frogpilot/third_party/flask-3.1.3.dist-info/RECORD rename to starpilot/third_party/flask-3.1.3.dist-info/RECORD diff --git a/frogpilot/third_party/flask-3.1.3.dist-info/REQUESTED b/starpilot/third_party/flask-3.1.3.dist-info/REQUESTED similarity index 100% rename from frogpilot/third_party/flask-3.1.3.dist-info/REQUESTED rename to starpilot/third_party/flask-3.1.3.dist-info/REQUESTED diff --git a/frogpilot/third_party/flask-3.1.3.dist-info/WHEEL b/starpilot/third_party/flask-3.1.3.dist-info/WHEEL similarity index 100% rename from frogpilot/third_party/flask-3.1.3.dist-info/WHEEL rename to starpilot/third_party/flask-3.1.3.dist-info/WHEEL diff --git a/frogpilot/third_party/flask-3.1.3.dist-info/entry_points.txt b/starpilot/third_party/flask-3.1.3.dist-info/entry_points.txt similarity index 100% rename from frogpilot/third_party/flask-3.1.3.dist-info/entry_points.txt rename to starpilot/third_party/flask-3.1.3.dist-info/entry_points.txt diff --git a/frogpilot/third_party/flask-3.1.3.dist-info/licenses/LICENSE.txt b/starpilot/third_party/flask-3.1.3.dist-info/licenses/LICENSE.txt similarity index 100% rename from frogpilot/third_party/flask-3.1.3.dist-info/licenses/LICENSE.txt rename to starpilot/third_party/flask-3.1.3.dist-info/licenses/LICENSE.txt diff --git a/frogpilot/third_party/flask/__init__.py b/starpilot/third_party/flask/__init__.py similarity index 100% rename from frogpilot/third_party/flask/__init__.py rename to starpilot/third_party/flask/__init__.py diff --git a/frogpilot/third_party/flask/__main__.py b/starpilot/third_party/flask/__main__.py similarity index 100% rename from frogpilot/third_party/flask/__main__.py rename to starpilot/third_party/flask/__main__.py diff --git a/frogpilot/third_party/flask/app.py b/starpilot/third_party/flask/app.py similarity index 100% rename from frogpilot/third_party/flask/app.py rename to starpilot/third_party/flask/app.py diff --git a/frogpilot/third_party/flask/blueprints.py b/starpilot/third_party/flask/blueprints.py similarity index 100% rename from frogpilot/third_party/flask/blueprints.py rename to starpilot/third_party/flask/blueprints.py diff --git a/frogpilot/third_party/flask/cli.py b/starpilot/third_party/flask/cli.py similarity index 100% rename from frogpilot/third_party/flask/cli.py rename to starpilot/third_party/flask/cli.py diff --git a/frogpilot/third_party/flask/config.py b/starpilot/third_party/flask/config.py similarity index 100% rename from frogpilot/third_party/flask/config.py rename to starpilot/third_party/flask/config.py diff --git a/frogpilot/third_party/flask/ctx.py b/starpilot/third_party/flask/ctx.py similarity index 100% rename from frogpilot/third_party/flask/ctx.py rename to starpilot/third_party/flask/ctx.py diff --git a/frogpilot/third_party/flask/debughelpers.py b/starpilot/third_party/flask/debughelpers.py similarity index 100% rename from frogpilot/third_party/flask/debughelpers.py rename to starpilot/third_party/flask/debughelpers.py diff --git a/frogpilot/third_party/flask/globals.py b/starpilot/third_party/flask/globals.py similarity index 100% rename from frogpilot/third_party/flask/globals.py rename to starpilot/third_party/flask/globals.py diff --git a/frogpilot/third_party/flask/helpers.py b/starpilot/third_party/flask/helpers.py similarity index 100% rename from frogpilot/third_party/flask/helpers.py rename to starpilot/third_party/flask/helpers.py diff --git a/frogpilot/third_party/flask/json/__init__.py b/starpilot/third_party/flask/json/__init__.py similarity index 100% rename from frogpilot/third_party/flask/json/__init__.py rename to starpilot/third_party/flask/json/__init__.py diff --git a/frogpilot/third_party/flask/json/provider.py b/starpilot/third_party/flask/json/provider.py similarity index 100% rename from frogpilot/third_party/flask/json/provider.py rename to starpilot/third_party/flask/json/provider.py diff --git a/frogpilot/third_party/flask/json/tag.py b/starpilot/third_party/flask/json/tag.py similarity index 100% rename from frogpilot/third_party/flask/json/tag.py rename to starpilot/third_party/flask/json/tag.py diff --git a/frogpilot/third_party/flask/logging.py b/starpilot/third_party/flask/logging.py similarity index 100% rename from frogpilot/third_party/flask/logging.py rename to starpilot/third_party/flask/logging.py diff --git a/frogpilot/third_party/flask/py.typed b/starpilot/third_party/flask/py.typed similarity index 100% rename from frogpilot/third_party/flask/py.typed rename to starpilot/third_party/flask/py.typed diff --git a/frogpilot/third_party/flask/sansio/README.md b/starpilot/third_party/flask/sansio/README.md similarity index 100% rename from frogpilot/third_party/flask/sansio/README.md rename to starpilot/third_party/flask/sansio/README.md diff --git a/frogpilot/third_party/flask/sansio/app.py b/starpilot/third_party/flask/sansio/app.py similarity index 100% rename from frogpilot/third_party/flask/sansio/app.py rename to starpilot/third_party/flask/sansio/app.py diff --git a/frogpilot/third_party/flask/sansio/blueprints.py b/starpilot/third_party/flask/sansio/blueprints.py similarity index 100% rename from frogpilot/third_party/flask/sansio/blueprints.py rename to starpilot/third_party/flask/sansio/blueprints.py diff --git a/frogpilot/third_party/flask/sansio/scaffold.py b/starpilot/third_party/flask/sansio/scaffold.py similarity index 100% rename from frogpilot/third_party/flask/sansio/scaffold.py rename to starpilot/third_party/flask/sansio/scaffold.py diff --git a/frogpilot/third_party/flask/sessions.py b/starpilot/third_party/flask/sessions.py similarity index 100% rename from frogpilot/third_party/flask/sessions.py rename to starpilot/third_party/flask/sessions.py diff --git a/frogpilot/third_party/flask/signals.py b/starpilot/third_party/flask/signals.py similarity index 100% rename from frogpilot/third_party/flask/signals.py rename to starpilot/third_party/flask/signals.py diff --git a/frogpilot/third_party/flask/templating.py b/starpilot/third_party/flask/templating.py similarity index 100% rename from frogpilot/third_party/flask/templating.py rename to starpilot/third_party/flask/templating.py diff --git a/frogpilot/third_party/flask/testing.py b/starpilot/third_party/flask/testing.py similarity index 100% rename from frogpilot/third_party/flask/testing.py rename to starpilot/third_party/flask/testing.py diff --git a/frogpilot/third_party/flask/typing.py b/starpilot/third_party/flask/typing.py similarity index 100% rename from frogpilot/third_party/flask/typing.py rename to starpilot/third_party/flask/typing.py diff --git a/frogpilot/third_party/flask/views.py b/starpilot/third_party/flask/views.py similarity index 100% rename from frogpilot/third_party/flask/views.py rename to starpilot/third_party/flask/views.py diff --git a/frogpilot/third_party/flask/wrappers.py b/starpilot/third_party/flask/wrappers.py similarity index 100% rename from frogpilot/third_party/flask/wrappers.py rename to starpilot/third_party/flask/wrappers.py diff --git a/frogpilot/third_party/flatbuffers/__init__.py b/starpilot/third_party/flatbuffers/__init__.py similarity index 100% rename from frogpilot/third_party/flatbuffers/__init__.py rename to starpilot/third_party/flatbuffers/__init__.py diff --git a/frogpilot/third_party/flatbuffers/_version.py b/starpilot/third_party/flatbuffers/_version.py similarity index 100% rename from frogpilot/third_party/flatbuffers/_version.py rename to starpilot/third_party/flatbuffers/_version.py diff --git a/frogpilot/third_party/flatbuffers/builder.py b/starpilot/third_party/flatbuffers/builder.py similarity index 100% rename from frogpilot/third_party/flatbuffers/builder.py rename to starpilot/third_party/flatbuffers/builder.py diff --git a/frogpilot/third_party/flatbuffers/compat.py b/starpilot/third_party/flatbuffers/compat.py similarity index 100% rename from frogpilot/third_party/flatbuffers/compat.py rename to starpilot/third_party/flatbuffers/compat.py diff --git a/frogpilot/third_party/flatbuffers/encode.py b/starpilot/third_party/flatbuffers/encode.py similarity index 100% rename from frogpilot/third_party/flatbuffers/encode.py rename to starpilot/third_party/flatbuffers/encode.py diff --git a/frogpilot/third_party/flatbuffers/number_types.py b/starpilot/third_party/flatbuffers/number_types.py similarity index 100% rename from frogpilot/third_party/flatbuffers/number_types.py rename to starpilot/third_party/flatbuffers/number_types.py diff --git a/frogpilot/third_party/flatbuffers/packer.py b/starpilot/third_party/flatbuffers/packer.py similarity index 100% rename from frogpilot/third_party/flatbuffers/packer.py rename to starpilot/third_party/flatbuffers/packer.py diff --git a/frogpilot/third_party/flatbuffers/table.py b/starpilot/third_party/flatbuffers/table.py similarity index 100% rename from frogpilot/third_party/flatbuffers/table.py rename to starpilot/third_party/flatbuffers/table.py diff --git a/frogpilot/third_party/flatbuffers/util.py b/starpilot/third_party/flatbuffers/util.py similarity index 100% rename from frogpilot/third_party/flatbuffers/util.py rename to starpilot/third_party/flatbuffers/util.py diff --git a/frogpilot/third_party/h3/__init__.py b/starpilot/third_party/h3/__init__.py similarity index 100% rename from frogpilot/third_party/h3/__init__.py rename to starpilot/third_party/h3/__init__.py diff --git a/frogpilot/third_party/h3/_cy/__init__.py b/starpilot/third_party/h3/_cy/__init__.py similarity index 100% rename from frogpilot/third_party/h3/_cy/__init__.py rename to starpilot/third_party/h3/_cy/__init__.py diff --git a/frogpilot/third_party/h3/_cy/cells.cpython-312-aarch64-linux-gnu.so b/starpilot/third_party/h3/_cy/cells.cpython-312-aarch64-linux-gnu.so similarity index 100% rename from frogpilot/third_party/h3/_cy/cells.cpython-312-aarch64-linux-gnu.so rename to starpilot/third_party/h3/_cy/cells.cpython-312-aarch64-linux-gnu.so diff --git a/frogpilot/third_party/h3/_cy/edges.cpython-312-aarch64-linux-gnu.so b/starpilot/third_party/h3/_cy/edges.cpython-312-aarch64-linux-gnu.so similarity index 100% rename from frogpilot/third_party/h3/_cy/edges.cpython-312-aarch64-linux-gnu.so rename to starpilot/third_party/h3/_cy/edges.cpython-312-aarch64-linux-gnu.so diff --git a/frogpilot/third_party/h3/_cy/error_system.cpython-312-aarch64-linux-gnu.so b/starpilot/third_party/h3/_cy/error_system.cpython-312-aarch64-linux-gnu.so similarity index 100% rename from frogpilot/third_party/h3/_cy/error_system.cpython-312-aarch64-linux-gnu.so rename to starpilot/third_party/h3/_cy/error_system.cpython-312-aarch64-linux-gnu.so diff --git a/frogpilot/third_party/h3/_cy/latlng.cpython-312-aarch64-linux-gnu.so b/starpilot/third_party/h3/_cy/latlng.cpython-312-aarch64-linux-gnu.so similarity index 100% rename from frogpilot/third_party/h3/_cy/latlng.cpython-312-aarch64-linux-gnu.so rename to starpilot/third_party/h3/_cy/latlng.cpython-312-aarch64-linux-gnu.so diff --git a/frogpilot/third_party/h3/_cy/memory.cpython-312-aarch64-linux-gnu.so b/starpilot/third_party/h3/_cy/memory.cpython-312-aarch64-linux-gnu.so similarity index 100% rename from frogpilot/third_party/h3/_cy/memory.cpython-312-aarch64-linux-gnu.so rename to starpilot/third_party/h3/_cy/memory.cpython-312-aarch64-linux-gnu.so diff --git a/frogpilot/third_party/h3/_cy/to_multipoly.cpython-312-aarch64-linux-gnu.so b/starpilot/third_party/h3/_cy/to_multipoly.cpython-312-aarch64-linux-gnu.so similarity index 100% rename from frogpilot/third_party/h3/_cy/to_multipoly.cpython-312-aarch64-linux-gnu.so rename to starpilot/third_party/h3/_cy/to_multipoly.cpython-312-aarch64-linux-gnu.so diff --git a/frogpilot/third_party/h3/_cy/util.cpython-312-aarch64-linux-gnu.so b/starpilot/third_party/h3/_cy/util.cpython-312-aarch64-linux-gnu.so similarity index 100% rename from frogpilot/third_party/h3/_cy/util.cpython-312-aarch64-linux-gnu.so rename to starpilot/third_party/h3/_cy/util.cpython-312-aarch64-linux-gnu.so diff --git a/frogpilot/third_party/h3/_cy/vertex.cpython-312-aarch64-linux-gnu.so b/starpilot/third_party/h3/_cy/vertex.cpython-312-aarch64-linux-gnu.so similarity index 100% rename from frogpilot/third_party/h3/_cy/vertex.cpython-312-aarch64-linux-gnu.so rename to starpilot/third_party/h3/_cy/vertex.cpython-312-aarch64-linux-gnu.so diff --git a/frogpilot/third_party/h3/_h3shape.py b/starpilot/third_party/h3/_h3shape.py similarity index 100% rename from frogpilot/third_party/h3/_h3shape.py rename to starpilot/third_party/h3/_h3shape.py diff --git a/frogpilot/third_party/h3/_version.py b/starpilot/third_party/h3/_version.py similarity index 100% rename from frogpilot/third_party/h3/_version.py rename to starpilot/third_party/h3/_version.py diff --git a/frogpilot/third_party/h3/api/__init__.py b/starpilot/third_party/h3/api/__init__.py similarity index 100% rename from frogpilot/third_party/h3/api/__init__.py rename to starpilot/third_party/h3/api/__init__.py diff --git a/frogpilot/third_party/h3/api/basic_int/__init__.py b/starpilot/third_party/h3/api/basic_int/__init__.py similarity index 100% rename from frogpilot/third_party/h3/api/basic_int/__init__.py rename to starpilot/third_party/h3/api/basic_int/__init__.py diff --git a/frogpilot/third_party/h3/api/basic_int/_convert.py b/starpilot/third_party/h3/api/basic_int/_convert.py similarity index 100% rename from frogpilot/third_party/h3/api/basic_int/_convert.py rename to starpilot/third_party/h3/api/basic_int/_convert.py diff --git a/frogpilot/third_party/h3/api/basic_str/__init__.py b/starpilot/third_party/h3/api/basic_str/__init__.py similarity index 100% rename from frogpilot/third_party/h3/api/basic_str/__init__.py rename to starpilot/third_party/h3/api/basic_str/__init__.py diff --git a/frogpilot/third_party/h3/api/basic_str/_convert.py b/starpilot/third_party/h3/api/basic_str/_convert.py similarity index 100% rename from frogpilot/third_party/h3/api/basic_str/_convert.py rename to starpilot/third_party/h3/api/basic_str/_convert.py diff --git a/frogpilot/third_party/h3/api/memview_int/__init__.py b/starpilot/third_party/h3/api/memview_int/__init__.py similarity index 100% rename from frogpilot/third_party/h3/api/memview_int/__init__.py rename to starpilot/third_party/h3/api/memview_int/__init__.py diff --git a/frogpilot/third_party/h3/api/memview_int/_convert.py b/starpilot/third_party/h3/api/memview_int/_convert.py similarity index 100% rename from frogpilot/third_party/h3/api/memview_int/_convert.py rename to starpilot/third_party/h3/api/memview_int/_convert.py diff --git a/frogpilot/third_party/h3/api/numpy_int/__init__.py b/starpilot/third_party/h3/api/numpy_int/__init__.py similarity index 100% rename from frogpilot/third_party/h3/api/numpy_int/__init__.py rename to starpilot/third_party/h3/api/numpy_int/__init__.py diff --git a/frogpilot/third_party/h3/api/numpy_int/_convert.py b/starpilot/third_party/h3/api/numpy_int/_convert.py similarity index 100% rename from frogpilot/third_party/h3/api/numpy_int/_convert.py rename to starpilot/third_party/h3/api/numpy_int/_convert.py diff --git a/frogpilot/third_party/influxdb_client/__init__.py b/starpilot/third_party/influxdb_client/__init__.py similarity index 100% rename from frogpilot/third_party/influxdb_client/__init__.py rename to starpilot/third_party/influxdb_client/__init__.py diff --git a/frogpilot/third_party/influxdb_client/_async/__init__.py b/starpilot/third_party/influxdb_client/_async/__init__.py similarity index 100% rename from frogpilot/third_party/influxdb_client/_async/__init__.py rename to starpilot/third_party/influxdb_client/_async/__init__.py diff --git a/frogpilot/third_party/influxdb_client/_async/api_client.py b/starpilot/third_party/influxdb_client/_async/api_client.py similarity index 100% rename from frogpilot/third_party/influxdb_client/_async/api_client.py rename to starpilot/third_party/influxdb_client/_async/api_client.py diff --git a/frogpilot/third_party/influxdb_client/_async/rest.py b/starpilot/third_party/influxdb_client/_async/rest.py similarity index 100% rename from frogpilot/third_party/influxdb_client/_async/rest.py rename to starpilot/third_party/influxdb_client/_async/rest.py diff --git a/frogpilot/third_party/influxdb_client/_sync/__init__.py b/starpilot/third_party/influxdb_client/_sync/__init__.py similarity index 100% rename from frogpilot/third_party/influxdb_client/_sync/__init__.py rename to starpilot/third_party/influxdb_client/_sync/__init__.py diff --git a/frogpilot/third_party/influxdb_client/_sync/api_client.py b/starpilot/third_party/influxdb_client/_sync/api_client.py similarity index 100% rename from frogpilot/third_party/influxdb_client/_sync/api_client.py rename to starpilot/third_party/influxdb_client/_sync/api_client.py diff --git a/frogpilot/third_party/influxdb_client/_sync/rest.py b/starpilot/third_party/influxdb_client/_sync/rest.py similarity index 100% rename from frogpilot/third_party/influxdb_client/_sync/rest.py rename to starpilot/third_party/influxdb_client/_sync/rest.py diff --git a/frogpilot/third_party/influxdb_client/client/__init__.py b/starpilot/third_party/influxdb_client/client/__init__.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/__init__.py rename to starpilot/third_party/influxdb_client/client/__init__.py diff --git a/frogpilot/third_party/influxdb_client/client/_base.py b/starpilot/third_party/influxdb_client/client/_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/_base.py rename to starpilot/third_party/influxdb_client/client/_base.py diff --git a/frogpilot/third_party/influxdb_client/client/_pages.py b/starpilot/third_party/influxdb_client/client/_pages.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/_pages.py rename to starpilot/third_party/influxdb_client/client/_pages.py diff --git a/frogpilot/third_party/influxdb_client/client/authorizations_api.py b/starpilot/third_party/influxdb_client/client/authorizations_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/authorizations_api.py rename to starpilot/third_party/influxdb_client/client/authorizations_api.py diff --git a/frogpilot/third_party/influxdb_client/client/bucket_api.py b/starpilot/third_party/influxdb_client/client/bucket_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/bucket_api.py rename to starpilot/third_party/influxdb_client/client/bucket_api.py diff --git a/frogpilot/third_party/influxdb_client/client/delete_api.py b/starpilot/third_party/influxdb_client/client/delete_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/delete_api.py rename to starpilot/third_party/influxdb_client/client/delete_api.py diff --git a/frogpilot/third_party/influxdb_client/client/delete_api_async.py b/starpilot/third_party/influxdb_client/client/delete_api_async.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/delete_api_async.py rename to starpilot/third_party/influxdb_client/client/delete_api_async.py diff --git a/frogpilot/third_party/influxdb_client/client/exceptions.py b/starpilot/third_party/influxdb_client/client/exceptions.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/exceptions.py rename to starpilot/third_party/influxdb_client/client/exceptions.py diff --git a/frogpilot/third_party/influxdb_client/client/flux_csv_parser.py b/starpilot/third_party/influxdb_client/client/flux_csv_parser.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/flux_csv_parser.py rename to starpilot/third_party/influxdb_client/client/flux_csv_parser.py diff --git a/frogpilot/third_party/influxdb_client/client/flux_table.py b/starpilot/third_party/influxdb_client/client/flux_table.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/flux_table.py rename to starpilot/third_party/influxdb_client/client/flux_table.py diff --git a/frogpilot/third_party/influxdb_client/client/influxdb_client.py b/starpilot/third_party/influxdb_client/client/influxdb_client.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/influxdb_client.py rename to starpilot/third_party/influxdb_client/client/influxdb_client.py diff --git a/frogpilot/third_party/influxdb_client/client/influxdb_client_async.py b/starpilot/third_party/influxdb_client/client/influxdb_client_async.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/influxdb_client_async.py rename to starpilot/third_party/influxdb_client/client/influxdb_client_async.py diff --git a/frogpilot/third_party/influxdb_client/client/invokable_scripts_api.py b/starpilot/third_party/influxdb_client/client/invokable_scripts_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/invokable_scripts_api.py rename to starpilot/third_party/influxdb_client/client/invokable_scripts_api.py diff --git a/frogpilot/third_party/influxdb_client/client/labels_api.py b/starpilot/third_party/influxdb_client/client/labels_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/labels_api.py rename to starpilot/third_party/influxdb_client/client/labels_api.py diff --git a/frogpilot/third_party/influxdb_client/client/logging_handler.py b/starpilot/third_party/influxdb_client/client/logging_handler.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/logging_handler.py rename to starpilot/third_party/influxdb_client/client/logging_handler.py diff --git a/frogpilot/third_party/influxdb_client/client/organizations_api.py b/starpilot/third_party/influxdb_client/client/organizations_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/organizations_api.py rename to starpilot/third_party/influxdb_client/client/organizations_api.py diff --git a/frogpilot/third_party/influxdb_client/client/query_api.py b/starpilot/third_party/influxdb_client/client/query_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/query_api.py rename to starpilot/third_party/influxdb_client/client/query_api.py diff --git a/frogpilot/third_party/influxdb_client/client/query_api_async.py b/starpilot/third_party/influxdb_client/client/query_api_async.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/query_api_async.py rename to starpilot/third_party/influxdb_client/client/query_api_async.py diff --git a/frogpilot/third_party/influxdb_client/client/tasks_api.py b/starpilot/third_party/influxdb_client/client/tasks_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/tasks_api.py rename to starpilot/third_party/influxdb_client/client/tasks_api.py diff --git a/frogpilot/third_party/influxdb_client/client/users_api.py b/starpilot/third_party/influxdb_client/client/users_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/users_api.py rename to starpilot/third_party/influxdb_client/client/users_api.py diff --git a/frogpilot/third_party/influxdb_client/client/util/__init__.py b/starpilot/third_party/influxdb_client/client/util/__init__.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/util/__init__.py rename to starpilot/third_party/influxdb_client/client/util/__init__.py diff --git a/frogpilot/third_party/influxdb_client/client/util/date_utils.py b/starpilot/third_party/influxdb_client/client/util/date_utils.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/util/date_utils.py rename to starpilot/third_party/influxdb_client/client/util/date_utils.py diff --git a/frogpilot/third_party/influxdb_client/client/util/date_utils_pandas.py b/starpilot/third_party/influxdb_client/client/util/date_utils_pandas.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/util/date_utils_pandas.py rename to starpilot/third_party/influxdb_client/client/util/date_utils_pandas.py diff --git a/frogpilot/third_party/influxdb_client/client/util/helpers.py b/starpilot/third_party/influxdb_client/client/util/helpers.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/util/helpers.py rename to starpilot/third_party/influxdb_client/client/util/helpers.py diff --git a/frogpilot/third_party/influxdb_client/client/util/multiprocessing_helper.py b/starpilot/third_party/influxdb_client/client/util/multiprocessing_helper.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/util/multiprocessing_helper.py rename to starpilot/third_party/influxdb_client/client/util/multiprocessing_helper.py diff --git a/frogpilot/third_party/influxdb_client/client/warnings.py b/starpilot/third_party/influxdb_client/client/warnings.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/warnings.py rename to starpilot/third_party/influxdb_client/client/warnings.py diff --git a/frogpilot/third_party/influxdb_client/client/write/__init__.py b/starpilot/third_party/influxdb_client/client/write/__init__.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/write/__init__.py rename to starpilot/third_party/influxdb_client/client/write/__init__.py diff --git a/frogpilot/third_party/influxdb_client/client/write/dataframe_serializer.py b/starpilot/third_party/influxdb_client/client/write/dataframe_serializer.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/write/dataframe_serializer.py rename to starpilot/third_party/influxdb_client/client/write/dataframe_serializer.py diff --git a/frogpilot/third_party/influxdb_client/client/write/point.py b/starpilot/third_party/influxdb_client/client/write/point.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/write/point.py rename to starpilot/third_party/influxdb_client/client/write/point.py diff --git a/frogpilot/third_party/influxdb_client/client/write/retry.py b/starpilot/third_party/influxdb_client/client/write/retry.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/write/retry.py rename to starpilot/third_party/influxdb_client/client/write/retry.py diff --git a/frogpilot/third_party/influxdb_client/client/write_api.py b/starpilot/third_party/influxdb_client/client/write_api.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/write_api.py rename to starpilot/third_party/influxdb_client/client/write_api.py diff --git a/frogpilot/third_party/influxdb_client/client/write_api_async.py b/starpilot/third_party/influxdb_client/client/write_api_async.py similarity index 100% rename from frogpilot/third_party/influxdb_client/client/write_api_async.py rename to starpilot/third_party/influxdb_client/client/write_api_async.py diff --git a/frogpilot/third_party/influxdb_client/configuration.py b/starpilot/third_party/influxdb_client/configuration.py similarity index 100% rename from frogpilot/third_party/influxdb_client/configuration.py rename to starpilot/third_party/influxdb_client/configuration.py diff --git a/frogpilot/third_party/influxdb_client/domain/__init__.py b/starpilot/third_party/influxdb_client/domain/__init__.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/__init__.py rename to starpilot/third_party/influxdb_client/domain/__init__.py diff --git a/frogpilot/third_party/influxdb_client/domain/add_resource_member_request_body.py b/starpilot/third_party/influxdb_client/domain/add_resource_member_request_body.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/add_resource_member_request_body.py rename to starpilot/third_party/influxdb_client/domain/add_resource_member_request_body.py diff --git a/frogpilot/third_party/influxdb_client/domain/analyze_query_response.py b/starpilot/third_party/influxdb_client/domain/analyze_query_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/analyze_query_response.py rename to starpilot/third_party/influxdb_client/domain/analyze_query_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/analyze_query_response_errors.py b/starpilot/third_party/influxdb_client/domain/analyze_query_response_errors.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/analyze_query_response_errors.py rename to starpilot/third_party/influxdb_client/domain/analyze_query_response_errors.py diff --git a/frogpilot/third_party/influxdb_client/domain/array_expression.py b/starpilot/third_party/influxdb_client/domain/array_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/array_expression.py rename to starpilot/third_party/influxdb_client/domain/array_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/ast_response.py b/starpilot/third_party/influxdb_client/domain/ast_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/ast_response.py rename to starpilot/third_party/influxdb_client/domain/ast_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/authorization.py b/starpilot/third_party/influxdb_client/domain/authorization.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/authorization.py rename to starpilot/third_party/influxdb_client/domain/authorization.py diff --git a/frogpilot/third_party/influxdb_client/domain/authorization_post_request.py b/starpilot/third_party/influxdb_client/domain/authorization_post_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/authorization_post_request.py rename to starpilot/third_party/influxdb_client/domain/authorization_post_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/authorization_update_request.py b/starpilot/third_party/influxdb_client/domain/authorization_update_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/authorization_update_request.py rename to starpilot/third_party/influxdb_client/domain/authorization_update_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/authorizations.py b/starpilot/third_party/influxdb_client/domain/authorizations.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/authorizations.py rename to starpilot/third_party/influxdb_client/domain/authorizations.py diff --git a/frogpilot/third_party/influxdb_client/domain/axes.py b/starpilot/third_party/influxdb_client/domain/axes.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/axes.py rename to starpilot/third_party/influxdb_client/domain/axes.py diff --git a/frogpilot/third_party/influxdb_client/domain/axis.py b/starpilot/third_party/influxdb_client/domain/axis.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/axis.py rename to starpilot/third_party/influxdb_client/domain/axis.py diff --git a/frogpilot/third_party/influxdb_client/domain/axis_scale.py b/starpilot/third_party/influxdb_client/domain/axis_scale.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/axis_scale.py rename to starpilot/third_party/influxdb_client/domain/axis_scale.py diff --git a/frogpilot/third_party/influxdb_client/domain/bad_statement.py b/starpilot/third_party/influxdb_client/domain/bad_statement.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/bad_statement.py rename to starpilot/third_party/influxdb_client/domain/bad_statement.py diff --git a/frogpilot/third_party/influxdb_client/domain/band_view_properties.py b/starpilot/third_party/influxdb_client/domain/band_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/band_view_properties.py rename to starpilot/third_party/influxdb_client/domain/band_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/binary_expression.py b/starpilot/third_party/influxdb_client/domain/binary_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/binary_expression.py rename to starpilot/third_party/influxdb_client/domain/binary_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/block.py b/starpilot/third_party/influxdb_client/domain/block.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/block.py rename to starpilot/third_party/influxdb_client/domain/block.py diff --git a/frogpilot/third_party/influxdb_client/domain/boolean_literal.py b/starpilot/third_party/influxdb_client/domain/boolean_literal.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/boolean_literal.py rename to starpilot/third_party/influxdb_client/domain/boolean_literal.py diff --git a/frogpilot/third_party/influxdb_client/domain/bucket.py b/starpilot/third_party/influxdb_client/domain/bucket.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/bucket.py rename to starpilot/third_party/influxdb_client/domain/bucket.py diff --git a/frogpilot/third_party/influxdb_client/domain/bucket_links.py b/starpilot/third_party/influxdb_client/domain/bucket_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/bucket_links.py rename to starpilot/third_party/influxdb_client/domain/bucket_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/bucket_metadata_manifest.py b/starpilot/third_party/influxdb_client/domain/bucket_metadata_manifest.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/bucket_metadata_manifest.py rename to starpilot/third_party/influxdb_client/domain/bucket_metadata_manifest.py diff --git a/frogpilot/third_party/influxdb_client/domain/bucket_retention_rules.py b/starpilot/third_party/influxdb_client/domain/bucket_retention_rules.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/bucket_retention_rules.py rename to starpilot/third_party/influxdb_client/domain/bucket_retention_rules.py diff --git a/frogpilot/third_party/influxdb_client/domain/bucket_shard_mapping.py b/starpilot/third_party/influxdb_client/domain/bucket_shard_mapping.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/bucket_shard_mapping.py rename to starpilot/third_party/influxdb_client/domain/bucket_shard_mapping.py diff --git a/frogpilot/third_party/influxdb_client/domain/buckets.py b/starpilot/third_party/influxdb_client/domain/buckets.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/buckets.py rename to starpilot/third_party/influxdb_client/domain/buckets.py diff --git a/frogpilot/third_party/influxdb_client/domain/builder_aggregate_function_type.py b/starpilot/third_party/influxdb_client/domain/builder_aggregate_function_type.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/builder_aggregate_function_type.py rename to starpilot/third_party/influxdb_client/domain/builder_aggregate_function_type.py diff --git a/frogpilot/third_party/influxdb_client/domain/builder_config.py b/starpilot/third_party/influxdb_client/domain/builder_config.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/builder_config.py rename to starpilot/third_party/influxdb_client/domain/builder_config.py diff --git a/frogpilot/third_party/influxdb_client/domain/builder_config_aggregate_window.py b/starpilot/third_party/influxdb_client/domain/builder_config_aggregate_window.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/builder_config_aggregate_window.py rename to starpilot/third_party/influxdb_client/domain/builder_config_aggregate_window.py diff --git a/frogpilot/third_party/influxdb_client/domain/builder_functions_type.py b/starpilot/third_party/influxdb_client/domain/builder_functions_type.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/builder_functions_type.py rename to starpilot/third_party/influxdb_client/domain/builder_functions_type.py diff --git a/frogpilot/third_party/influxdb_client/domain/builder_tags_type.py b/starpilot/third_party/influxdb_client/domain/builder_tags_type.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/builder_tags_type.py rename to starpilot/third_party/influxdb_client/domain/builder_tags_type.py diff --git a/frogpilot/third_party/influxdb_client/domain/builtin_statement.py b/starpilot/third_party/influxdb_client/domain/builtin_statement.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/builtin_statement.py rename to starpilot/third_party/influxdb_client/domain/builtin_statement.py diff --git a/frogpilot/third_party/influxdb_client/domain/call_expression.py b/starpilot/third_party/influxdb_client/domain/call_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/call_expression.py rename to starpilot/third_party/influxdb_client/domain/call_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/cell.py b/starpilot/third_party/influxdb_client/domain/cell.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/cell.py rename to starpilot/third_party/influxdb_client/domain/cell.py diff --git a/frogpilot/third_party/influxdb_client/domain/cell_links.py b/starpilot/third_party/influxdb_client/domain/cell_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/cell_links.py rename to starpilot/third_party/influxdb_client/domain/cell_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/cell_update.py b/starpilot/third_party/influxdb_client/domain/cell_update.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/cell_update.py rename to starpilot/third_party/influxdb_client/domain/cell_update.py diff --git a/frogpilot/third_party/influxdb_client/domain/cell_with_view_properties.py b/starpilot/third_party/influxdb_client/domain/cell_with_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/cell_with_view_properties.py rename to starpilot/third_party/influxdb_client/domain/cell_with_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/check.py b/starpilot/third_party/influxdb_client/domain/check.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/check.py rename to starpilot/third_party/influxdb_client/domain/check.py diff --git a/frogpilot/third_party/influxdb_client/domain/check_base.py b/starpilot/third_party/influxdb_client/domain/check_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/check_base.py rename to starpilot/third_party/influxdb_client/domain/check_base.py diff --git a/frogpilot/third_party/influxdb_client/domain/check_base_links.py b/starpilot/third_party/influxdb_client/domain/check_base_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/check_base_links.py rename to starpilot/third_party/influxdb_client/domain/check_base_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/check_discriminator.py b/starpilot/third_party/influxdb_client/domain/check_discriminator.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/check_discriminator.py rename to starpilot/third_party/influxdb_client/domain/check_discriminator.py diff --git a/frogpilot/third_party/influxdb_client/domain/check_patch.py b/starpilot/third_party/influxdb_client/domain/check_patch.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/check_patch.py rename to starpilot/third_party/influxdb_client/domain/check_patch.py diff --git a/frogpilot/third_party/influxdb_client/domain/check_status_level.py b/starpilot/third_party/influxdb_client/domain/check_status_level.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/check_status_level.py rename to starpilot/third_party/influxdb_client/domain/check_status_level.py diff --git a/frogpilot/third_party/influxdb_client/domain/check_view_properties.py b/starpilot/third_party/influxdb_client/domain/check_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/check_view_properties.py rename to starpilot/third_party/influxdb_client/domain/check_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/checks.py b/starpilot/third_party/influxdb_client/domain/checks.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/checks.py rename to starpilot/third_party/influxdb_client/domain/checks.py diff --git a/frogpilot/third_party/influxdb_client/domain/column_data_type.py b/starpilot/third_party/influxdb_client/domain/column_data_type.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/column_data_type.py rename to starpilot/third_party/influxdb_client/domain/column_data_type.py diff --git a/frogpilot/third_party/influxdb_client/domain/column_semantic_type.py b/starpilot/third_party/influxdb_client/domain/column_semantic_type.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/column_semantic_type.py rename to starpilot/third_party/influxdb_client/domain/column_semantic_type.py diff --git a/frogpilot/third_party/influxdb_client/domain/conditional_expression.py b/starpilot/third_party/influxdb_client/domain/conditional_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/conditional_expression.py rename to starpilot/third_party/influxdb_client/domain/conditional_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/config.py b/starpilot/third_party/influxdb_client/domain/config.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/config.py rename to starpilot/third_party/influxdb_client/domain/config.py diff --git a/frogpilot/third_party/influxdb_client/domain/constant_variable_properties.py b/starpilot/third_party/influxdb_client/domain/constant_variable_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/constant_variable_properties.py rename to starpilot/third_party/influxdb_client/domain/constant_variable_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/create_cell.py b/starpilot/third_party/influxdb_client/domain/create_cell.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/create_cell.py rename to starpilot/third_party/influxdb_client/domain/create_cell.py diff --git a/frogpilot/third_party/influxdb_client/domain/create_dashboard_request.py b/starpilot/third_party/influxdb_client/domain/create_dashboard_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/create_dashboard_request.py rename to starpilot/third_party/influxdb_client/domain/create_dashboard_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/custom_check.py b/starpilot/third_party/influxdb_client/domain/custom_check.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/custom_check.py rename to starpilot/third_party/influxdb_client/domain/custom_check.py diff --git a/frogpilot/third_party/influxdb_client/domain/dashboard.py b/starpilot/third_party/influxdb_client/domain/dashboard.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dashboard.py rename to starpilot/third_party/influxdb_client/domain/dashboard.py diff --git a/frogpilot/third_party/influxdb_client/domain/dashboard_color.py b/starpilot/third_party/influxdb_client/domain/dashboard_color.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dashboard_color.py rename to starpilot/third_party/influxdb_client/domain/dashboard_color.py diff --git a/frogpilot/third_party/influxdb_client/domain/dashboard_query.py b/starpilot/third_party/influxdb_client/domain/dashboard_query.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dashboard_query.py rename to starpilot/third_party/influxdb_client/domain/dashboard_query.py diff --git a/frogpilot/third_party/influxdb_client/domain/dashboard_with_view_properties.py b/starpilot/third_party/influxdb_client/domain/dashboard_with_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dashboard_with_view_properties.py rename to starpilot/third_party/influxdb_client/domain/dashboard_with_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/dashboards.py b/starpilot/third_party/influxdb_client/domain/dashboards.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dashboards.py rename to starpilot/third_party/influxdb_client/domain/dashboards.py diff --git a/frogpilot/third_party/influxdb_client/domain/date_time_literal.py b/starpilot/third_party/influxdb_client/domain/date_time_literal.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/date_time_literal.py rename to starpilot/third_party/influxdb_client/domain/date_time_literal.py diff --git a/frogpilot/third_party/influxdb_client/domain/dbr_ps.py b/starpilot/third_party/influxdb_client/domain/dbr_ps.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dbr_ps.py rename to starpilot/third_party/influxdb_client/domain/dbr_ps.py diff --git a/frogpilot/third_party/influxdb_client/domain/dbrp.py b/starpilot/third_party/influxdb_client/domain/dbrp.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dbrp.py rename to starpilot/third_party/influxdb_client/domain/dbrp.py diff --git a/frogpilot/third_party/influxdb_client/domain/dbrp_create.py b/starpilot/third_party/influxdb_client/domain/dbrp_create.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dbrp_create.py rename to starpilot/third_party/influxdb_client/domain/dbrp_create.py diff --git a/frogpilot/third_party/influxdb_client/domain/dbrp_get.py b/starpilot/third_party/influxdb_client/domain/dbrp_get.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dbrp_get.py rename to starpilot/third_party/influxdb_client/domain/dbrp_get.py diff --git a/frogpilot/third_party/influxdb_client/domain/dbrp_update.py b/starpilot/third_party/influxdb_client/domain/dbrp_update.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dbrp_update.py rename to starpilot/third_party/influxdb_client/domain/dbrp_update.py diff --git a/frogpilot/third_party/influxdb_client/domain/deadman_check.py b/starpilot/third_party/influxdb_client/domain/deadman_check.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/deadman_check.py rename to starpilot/third_party/influxdb_client/domain/deadman_check.py diff --git a/frogpilot/third_party/influxdb_client/domain/decimal_places.py b/starpilot/third_party/influxdb_client/domain/decimal_places.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/decimal_places.py rename to starpilot/third_party/influxdb_client/domain/decimal_places.py diff --git a/frogpilot/third_party/influxdb_client/domain/delete_predicate_request.py b/starpilot/third_party/influxdb_client/domain/delete_predicate_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/delete_predicate_request.py rename to starpilot/third_party/influxdb_client/domain/delete_predicate_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/dialect.py b/starpilot/third_party/influxdb_client/domain/dialect.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dialect.py rename to starpilot/third_party/influxdb_client/domain/dialect.py diff --git a/frogpilot/third_party/influxdb_client/domain/dict_expression.py b/starpilot/third_party/influxdb_client/domain/dict_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dict_expression.py rename to starpilot/third_party/influxdb_client/domain/dict_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/dict_item.py b/starpilot/third_party/influxdb_client/domain/dict_item.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/dict_item.py rename to starpilot/third_party/influxdb_client/domain/dict_item.py diff --git a/frogpilot/third_party/influxdb_client/domain/duration.py b/starpilot/third_party/influxdb_client/domain/duration.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/duration.py rename to starpilot/third_party/influxdb_client/domain/duration.py diff --git a/frogpilot/third_party/influxdb_client/domain/duration_literal.py b/starpilot/third_party/influxdb_client/domain/duration_literal.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/duration_literal.py rename to starpilot/third_party/influxdb_client/domain/duration_literal.py diff --git a/frogpilot/third_party/influxdb_client/domain/error.py b/starpilot/third_party/influxdb_client/domain/error.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/error.py rename to starpilot/third_party/influxdb_client/domain/error.py diff --git a/frogpilot/third_party/influxdb_client/domain/expression.py b/starpilot/third_party/influxdb_client/domain/expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/expression.py rename to starpilot/third_party/influxdb_client/domain/expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/expression_statement.py b/starpilot/third_party/influxdb_client/domain/expression_statement.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/expression_statement.py rename to starpilot/third_party/influxdb_client/domain/expression_statement.py diff --git a/frogpilot/third_party/influxdb_client/domain/field.py b/starpilot/third_party/influxdb_client/domain/field.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/field.py rename to starpilot/third_party/influxdb_client/domain/field.py diff --git a/frogpilot/third_party/influxdb_client/domain/file.py b/starpilot/third_party/influxdb_client/domain/file.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/file.py rename to starpilot/third_party/influxdb_client/domain/file.py diff --git a/frogpilot/third_party/influxdb_client/domain/float_literal.py b/starpilot/third_party/influxdb_client/domain/float_literal.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/float_literal.py rename to starpilot/third_party/influxdb_client/domain/float_literal.py diff --git a/frogpilot/third_party/influxdb_client/domain/flux_response.py b/starpilot/third_party/influxdb_client/domain/flux_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/flux_response.py rename to starpilot/third_party/influxdb_client/domain/flux_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/flux_suggestion.py b/starpilot/third_party/influxdb_client/domain/flux_suggestion.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/flux_suggestion.py rename to starpilot/third_party/influxdb_client/domain/flux_suggestion.py diff --git a/frogpilot/third_party/influxdb_client/domain/flux_suggestions.py b/starpilot/third_party/influxdb_client/domain/flux_suggestions.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/flux_suggestions.py rename to starpilot/third_party/influxdb_client/domain/flux_suggestions.py diff --git a/frogpilot/third_party/influxdb_client/domain/function_expression.py b/starpilot/third_party/influxdb_client/domain/function_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/function_expression.py rename to starpilot/third_party/influxdb_client/domain/function_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/gauge_view_properties.py b/starpilot/third_party/influxdb_client/domain/gauge_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/gauge_view_properties.py rename to starpilot/third_party/influxdb_client/domain/gauge_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/greater_threshold.py b/starpilot/third_party/influxdb_client/domain/greater_threshold.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/greater_threshold.py rename to starpilot/third_party/influxdb_client/domain/greater_threshold.py diff --git a/frogpilot/third_party/influxdb_client/domain/health_check.py b/starpilot/third_party/influxdb_client/domain/health_check.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/health_check.py rename to starpilot/third_party/influxdb_client/domain/health_check.py diff --git a/frogpilot/third_party/influxdb_client/domain/heatmap_view_properties.py b/starpilot/third_party/influxdb_client/domain/heatmap_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/heatmap_view_properties.py rename to starpilot/third_party/influxdb_client/domain/heatmap_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/histogram_view_properties.py b/starpilot/third_party/influxdb_client/domain/histogram_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/histogram_view_properties.py rename to starpilot/third_party/influxdb_client/domain/histogram_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/http_notification_endpoint.py b/starpilot/third_party/influxdb_client/domain/http_notification_endpoint.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/http_notification_endpoint.py rename to starpilot/third_party/influxdb_client/domain/http_notification_endpoint.py diff --git a/frogpilot/third_party/influxdb_client/domain/http_notification_rule.py b/starpilot/third_party/influxdb_client/domain/http_notification_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/http_notification_rule.py rename to starpilot/third_party/influxdb_client/domain/http_notification_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/http_notification_rule_base.py b/starpilot/third_party/influxdb_client/domain/http_notification_rule_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/http_notification_rule_base.py rename to starpilot/third_party/influxdb_client/domain/http_notification_rule_base.py diff --git a/frogpilot/third_party/influxdb_client/domain/identifier.py b/starpilot/third_party/influxdb_client/domain/identifier.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/identifier.py rename to starpilot/third_party/influxdb_client/domain/identifier.py diff --git a/frogpilot/third_party/influxdb_client/domain/import_declaration.py b/starpilot/third_party/influxdb_client/domain/import_declaration.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/import_declaration.py rename to starpilot/third_party/influxdb_client/domain/import_declaration.py diff --git a/frogpilot/third_party/influxdb_client/domain/index_expression.py b/starpilot/third_party/influxdb_client/domain/index_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/index_expression.py rename to starpilot/third_party/influxdb_client/domain/index_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/integer_literal.py b/starpilot/third_party/influxdb_client/domain/integer_literal.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/integer_literal.py rename to starpilot/third_party/influxdb_client/domain/integer_literal.py diff --git a/frogpilot/third_party/influxdb_client/domain/is_onboarding.py b/starpilot/third_party/influxdb_client/domain/is_onboarding.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/is_onboarding.py rename to starpilot/third_party/influxdb_client/domain/is_onboarding.py diff --git a/frogpilot/third_party/influxdb_client/domain/label.py b/starpilot/third_party/influxdb_client/domain/label.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/label.py rename to starpilot/third_party/influxdb_client/domain/label.py diff --git a/frogpilot/third_party/influxdb_client/domain/label_create_request.py b/starpilot/third_party/influxdb_client/domain/label_create_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/label_create_request.py rename to starpilot/third_party/influxdb_client/domain/label_create_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/label_mapping.py b/starpilot/third_party/influxdb_client/domain/label_mapping.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/label_mapping.py rename to starpilot/third_party/influxdb_client/domain/label_mapping.py diff --git a/frogpilot/third_party/influxdb_client/domain/label_response.py b/starpilot/third_party/influxdb_client/domain/label_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/label_response.py rename to starpilot/third_party/influxdb_client/domain/label_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/label_update.py b/starpilot/third_party/influxdb_client/domain/label_update.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/label_update.py rename to starpilot/third_party/influxdb_client/domain/label_update.py diff --git a/frogpilot/third_party/influxdb_client/domain/labels_response.py b/starpilot/third_party/influxdb_client/domain/labels_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/labels_response.py rename to starpilot/third_party/influxdb_client/domain/labels_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/language_request.py b/starpilot/third_party/influxdb_client/domain/language_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/language_request.py rename to starpilot/third_party/influxdb_client/domain/language_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/legacy_authorization_post_request.py b/starpilot/third_party/influxdb_client/domain/legacy_authorization_post_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/legacy_authorization_post_request.py rename to starpilot/third_party/influxdb_client/domain/legacy_authorization_post_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/lesser_threshold.py b/starpilot/third_party/influxdb_client/domain/lesser_threshold.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/lesser_threshold.py rename to starpilot/third_party/influxdb_client/domain/lesser_threshold.py diff --git a/frogpilot/third_party/influxdb_client/domain/line_plus_single_stat_properties.py b/starpilot/third_party/influxdb_client/domain/line_plus_single_stat_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/line_plus_single_stat_properties.py rename to starpilot/third_party/influxdb_client/domain/line_plus_single_stat_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/line_protocol_error.py b/starpilot/third_party/influxdb_client/domain/line_protocol_error.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/line_protocol_error.py rename to starpilot/third_party/influxdb_client/domain/line_protocol_error.py diff --git a/frogpilot/third_party/influxdb_client/domain/line_protocol_length_error.py b/starpilot/third_party/influxdb_client/domain/line_protocol_length_error.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/line_protocol_length_error.py rename to starpilot/third_party/influxdb_client/domain/line_protocol_length_error.py diff --git a/frogpilot/third_party/influxdb_client/domain/links.py b/starpilot/third_party/influxdb_client/domain/links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/links.py rename to starpilot/third_party/influxdb_client/domain/links.py diff --git a/frogpilot/third_party/influxdb_client/domain/list_stacks_response.py b/starpilot/third_party/influxdb_client/domain/list_stacks_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/list_stacks_response.py rename to starpilot/third_party/influxdb_client/domain/list_stacks_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/log_event.py b/starpilot/third_party/influxdb_client/domain/log_event.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/log_event.py rename to starpilot/third_party/influxdb_client/domain/log_event.py diff --git a/frogpilot/third_party/influxdb_client/domain/logical_expression.py b/starpilot/third_party/influxdb_client/domain/logical_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/logical_expression.py rename to starpilot/third_party/influxdb_client/domain/logical_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/logs.py b/starpilot/third_party/influxdb_client/domain/logs.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/logs.py rename to starpilot/third_party/influxdb_client/domain/logs.py diff --git a/frogpilot/third_party/influxdb_client/domain/map_variable_properties.py b/starpilot/third_party/influxdb_client/domain/map_variable_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/map_variable_properties.py rename to starpilot/third_party/influxdb_client/domain/map_variable_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/markdown_view_properties.py b/starpilot/third_party/influxdb_client/domain/markdown_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/markdown_view_properties.py rename to starpilot/third_party/influxdb_client/domain/markdown_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/measurement_schema.py b/starpilot/third_party/influxdb_client/domain/measurement_schema.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/measurement_schema.py rename to starpilot/third_party/influxdb_client/domain/measurement_schema.py diff --git a/frogpilot/third_party/influxdb_client/domain/measurement_schema_column.py b/starpilot/third_party/influxdb_client/domain/measurement_schema_column.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/measurement_schema_column.py rename to starpilot/third_party/influxdb_client/domain/measurement_schema_column.py diff --git a/frogpilot/third_party/influxdb_client/domain/measurement_schema_create_request.py b/starpilot/third_party/influxdb_client/domain/measurement_schema_create_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/measurement_schema_create_request.py rename to starpilot/third_party/influxdb_client/domain/measurement_schema_create_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/measurement_schema_list.py b/starpilot/third_party/influxdb_client/domain/measurement_schema_list.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/measurement_schema_list.py rename to starpilot/third_party/influxdb_client/domain/measurement_schema_list.py diff --git a/frogpilot/third_party/influxdb_client/domain/measurement_schema_update_request.py b/starpilot/third_party/influxdb_client/domain/measurement_schema_update_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/measurement_schema_update_request.py rename to starpilot/third_party/influxdb_client/domain/measurement_schema_update_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/member_assignment.py b/starpilot/third_party/influxdb_client/domain/member_assignment.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/member_assignment.py rename to starpilot/third_party/influxdb_client/domain/member_assignment.py diff --git a/frogpilot/third_party/influxdb_client/domain/member_expression.py b/starpilot/third_party/influxdb_client/domain/member_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/member_expression.py rename to starpilot/third_party/influxdb_client/domain/member_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/metadata_backup.py b/starpilot/third_party/influxdb_client/domain/metadata_backup.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/metadata_backup.py rename to starpilot/third_party/influxdb_client/domain/metadata_backup.py diff --git a/frogpilot/third_party/influxdb_client/domain/model_property.py b/starpilot/third_party/influxdb_client/domain/model_property.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/model_property.py rename to starpilot/third_party/influxdb_client/domain/model_property.py diff --git a/frogpilot/third_party/influxdb_client/domain/mosaic_view_properties.py b/starpilot/third_party/influxdb_client/domain/mosaic_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/mosaic_view_properties.py rename to starpilot/third_party/influxdb_client/domain/mosaic_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/node.py b/starpilot/third_party/influxdb_client/domain/node.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/node.py rename to starpilot/third_party/influxdb_client/domain/node.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_endpoint.py b/starpilot/third_party/influxdb_client/domain/notification_endpoint.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_endpoint.py rename to starpilot/third_party/influxdb_client/domain/notification_endpoint.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_endpoint_base.py b/starpilot/third_party/influxdb_client/domain/notification_endpoint_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_endpoint_base.py rename to starpilot/third_party/influxdb_client/domain/notification_endpoint_base.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_endpoint_base_links.py b/starpilot/third_party/influxdb_client/domain/notification_endpoint_base_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_endpoint_base_links.py rename to starpilot/third_party/influxdb_client/domain/notification_endpoint_base_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_endpoint_discriminator.py b/starpilot/third_party/influxdb_client/domain/notification_endpoint_discriminator.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_endpoint_discriminator.py rename to starpilot/third_party/influxdb_client/domain/notification_endpoint_discriminator.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_endpoint_type.py b/starpilot/third_party/influxdb_client/domain/notification_endpoint_type.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_endpoint_type.py rename to starpilot/third_party/influxdb_client/domain/notification_endpoint_type.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_endpoint_update.py b/starpilot/third_party/influxdb_client/domain/notification_endpoint_update.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_endpoint_update.py rename to starpilot/third_party/influxdb_client/domain/notification_endpoint_update.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_endpoints.py b/starpilot/third_party/influxdb_client/domain/notification_endpoints.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_endpoints.py rename to starpilot/third_party/influxdb_client/domain/notification_endpoints.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_rule.py b/starpilot/third_party/influxdb_client/domain/notification_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_rule.py rename to starpilot/third_party/influxdb_client/domain/notification_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_rule_base.py b/starpilot/third_party/influxdb_client/domain/notification_rule_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_rule_base.py rename to starpilot/third_party/influxdb_client/domain/notification_rule_base.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_rule_base_links.py b/starpilot/third_party/influxdb_client/domain/notification_rule_base_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_rule_base_links.py rename to starpilot/third_party/influxdb_client/domain/notification_rule_base_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_rule_discriminator.py b/starpilot/third_party/influxdb_client/domain/notification_rule_discriminator.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_rule_discriminator.py rename to starpilot/third_party/influxdb_client/domain/notification_rule_discriminator.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_rule_update.py b/starpilot/third_party/influxdb_client/domain/notification_rule_update.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_rule_update.py rename to starpilot/third_party/influxdb_client/domain/notification_rule_update.py diff --git a/frogpilot/third_party/influxdb_client/domain/notification_rules.py b/starpilot/third_party/influxdb_client/domain/notification_rules.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/notification_rules.py rename to starpilot/third_party/influxdb_client/domain/notification_rules.py diff --git a/frogpilot/third_party/influxdb_client/domain/object_expression.py b/starpilot/third_party/influxdb_client/domain/object_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/object_expression.py rename to starpilot/third_party/influxdb_client/domain/object_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/onboarding_request.py b/starpilot/third_party/influxdb_client/domain/onboarding_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/onboarding_request.py rename to starpilot/third_party/influxdb_client/domain/onboarding_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/onboarding_response.py b/starpilot/third_party/influxdb_client/domain/onboarding_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/onboarding_response.py rename to starpilot/third_party/influxdb_client/domain/onboarding_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/option_statement.py b/starpilot/third_party/influxdb_client/domain/option_statement.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/option_statement.py rename to starpilot/third_party/influxdb_client/domain/option_statement.py diff --git a/frogpilot/third_party/influxdb_client/domain/organization.py b/starpilot/third_party/influxdb_client/domain/organization.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/organization.py rename to starpilot/third_party/influxdb_client/domain/organization.py diff --git a/frogpilot/third_party/influxdb_client/domain/organization_links.py b/starpilot/third_party/influxdb_client/domain/organization_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/organization_links.py rename to starpilot/third_party/influxdb_client/domain/organization_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/organizations.py b/starpilot/third_party/influxdb_client/domain/organizations.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/organizations.py rename to starpilot/third_party/influxdb_client/domain/organizations.py diff --git a/frogpilot/third_party/influxdb_client/domain/package.py b/starpilot/third_party/influxdb_client/domain/package.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/package.py rename to starpilot/third_party/influxdb_client/domain/package.py diff --git a/frogpilot/third_party/influxdb_client/domain/package_clause.py b/starpilot/third_party/influxdb_client/domain/package_clause.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/package_clause.py rename to starpilot/third_party/influxdb_client/domain/package_clause.py diff --git a/frogpilot/third_party/influxdb_client/domain/pager_duty_notification_endpoint.py b/starpilot/third_party/influxdb_client/domain/pager_duty_notification_endpoint.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/pager_duty_notification_endpoint.py rename to starpilot/third_party/influxdb_client/domain/pager_duty_notification_endpoint.py diff --git a/frogpilot/third_party/influxdb_client/domain/pager_duty_notification_rule.py b/starpilot/third_party/influxdb_client/domain/pager_duty_notification_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/pager_duty_notification_rule.py rename to starpilot/third_party/influxdb_client/domain/pager_duty_notification_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/pager_duty_notification_rule_base.py b/starpilot/third_party/influxdb_client/domain/pager_duty_notification_rule_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/pager_duty_notification_rule_base.py rename to starpilot/third_party/influxdb_client/domain/pager_duty_notification_rule_base.py diff --git a/frogpilot/third_party/influxdb_client/domain/paren_expression.py b/starpilot/third_party/influxdb_client/domain/paren_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/paren_expression.py rename to starpilot/third_party/influxdb_client/domain/paren_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/password_reset_body.py b/starpilot/third_party/influxdb_client/domain/password_reset_body.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/password_reset_body.py rename to starpilot/third_party/influxdb_client/domain/password_reset_body.py diff --git a/frogpilot/third_party/influxdb_client/domain/patch_bucket_request.py b/starpilot/third_party/influxdb_client/domain/patch_bucket_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/patch_bucket_request.py rename to starpilot/third_party/influxdb_client/domain/patch_bucket_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/patch_dashboard_request.py b/starpilot/third_party/influxdb_client/domain/patch_dashboard_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/patch_dashboard_request.py rename to starpilot/third_party/influxdb_client/domain/patch_dashboard_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/patch_organization_request.py b/starpilot/third_party/influxdb_client/domain/patch_organization_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/patch_organization_request.py rename to starpilot/third_party/influxdb_client/domain/patch_organization_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/patch_retention_rule.py b/starpilot/third_party/influxdb_client/domain/patch_retention_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/patch_retention_rule.py rename to starpilot/third_party/influxdb_client/domain/patch_retention_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/patch_stack_request.py b/starpilot/third_party/influxdb_client/domain/patch_stack_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/patch_stack_request.py rename to starpilot/third_party/influxdb_client/domain/patch_stack_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/patch_stack_request_additional_resources.py b/starpilot/third_party/influxdb_client/domain/patch_stack_request_additional_resources.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/patch_stack_request_additional_resources.py rename to starpilot/third_party/influxdb_client/domain/patch_stack_request_additional_resources.py diff --git a/frogpilot/third_party/influxdb_client/domain/permission.py b/starpilot/third_party/influxdb_client/domain/permission.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/permission.py rename to starpilot/third_party/influxdb_client/domain/permission.py diff --git a/frogpilot/third_party/influxdb_client/domain/permission_resource.py b/starpilot/third_party/influxdb_client/domain/permission_resource.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/permission_resource.py rename to starpilot/third_party/influxdb_client/domain/permission_resource.py diff --git a/frogpilot/third_party/influxdb_client/domain/pipe_expression.py b/starpilot/third_party/influxdb_client/domain/pipe_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/pipe_expression.py rename to starpilot/third_party/influxdb_client/domain/pipe_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/pipe_literal.py b/starpilot/third_party/influxdb_client/domain/pipe_literal.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/pipe_literal.py rename to starpilot/third_party/influxdb_client/domain/pipe_literal.py diff --git a/frogpilot/third_party/influxdb_client/domain/post_bucket_request.py b/starpilot/third_party/influxdb_client/domain/post_bucket_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/post_bucket_request.py rename to starpilot/third_party/influxdb_client/domain/post_bucket_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/post_check.py b/starpilot/third_party/influxdb_client/domain/post_check.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/post_check.py rename to starpilot/third_party/influxdb_client/domain/post_check.py diff --git a/frogpilot/third_party/influxdb_client/domain/post_notification_endpoint.py b/starpilot/third_party/influxdb_client/domain/post_notification_endpoint.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/post_notification_endpoint.py rename to starpilot/third_party/influxdb_client/domain/post_notification_endpoint.py diff --git a/frogpilot/third_party/influxdb_client/domain/post_notification_rule.py b/starpilot/third_party/influxdb_client/domain/post_notification_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/post_notification_rule.py rename to starpilot/third_party/influxdb_client/domain/post_notification_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/post_organization_request.py b/starpilot/third_party/influxdb_client/domain/post_organization_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/post_organization_request.py rename to starpilot/third_party/influxdb_client/domain/post_organization_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/post_restore_kv_response.py b/starpilot/third_party/influxdb_client/domain/post_restore_kv_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/post_restore_kv_response.py rename to starpilot/third_party/influxdb_client/domain/post_restore_kv_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/post_stack_request.py b/starpilot/third_party/influxdb_client/domain/post_stack_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/post_stack_request.py rename to starpilot/third_party/influxdb_client/domain/post_stack_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/property_key.py b/starpilot/third_party/influxdb_client/domain/property_key.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/property_key.py rename to starpilot/third_party/influxdb_client/domain/property_key.py diff --git a/frogpilot/third_party/influxdb_client/domain/query.py b/starpilot/third_party/influxdb_client/domain/query.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/query.py rename to starpilot/third_party/influxdb_client/domain/query.py diff --git a/frogpilot/third_party/influxdb_client/domain/query_edit_mode.py b/starpilot/third_party/influxdb_client/domain/query_edit_mode.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/query_edit_mode.py rename to starpilot/third_party/influxdb_client/domain/query_edit_mode.py diff --git a/frogpilot/third_party/influxdb_client/domain/query_variable_properties.py b/starpilot/third_party/influxdb_client/domain/query_variable_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/query_variable_properties.py rename to starpilot/third_party/influxdb_client/domain/query_variable_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/query_variable_properties_values.py b/starpilot/third_party/influxdb_client/domain/query_variable_properties_values.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/query_variable_properties_values.py rename to starpilot/third_party/influxdb_client/domain/query_variable_properties_values.py diff --git a/frogpilot/third_party/influxdb_client/domain/range_threshold.py b/starpilot/third_party/influxdb_client/domain/range_threshold.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/range_threshold.py rename to starpilot/third_party/influxdb_client/domain/range_threshold.py diff --git a/frogpilot/third_party/influxdb_client/domain/ready.py b/starpilot/third_party/influxdb_client/domain/ready.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/ready.py rename to starpilot/third_party/influxdb_client/domain/ready.py diff --git a/frogpilot/third_party/influxdb_client/domain/regexp_literal.py b/starpilot/third_party/influxdb_client/domain/regexp_literal.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/regexp_literal.py rename to starpilot/third_party/influxdb_client/domain/regexp_literal.py diff --git a/frogpilot/third_party/influxdb_client/domain/remote_connection.py b/starpilot/third_party/influxdb_client/domain/remote_connection.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/remote_connection.py rename to starpilot/third_party/influxdb_client/domain/remote_connection.py diff --git a/frogpilot/third_party/influxdb_client/domain/remote_connection_creation_request.py b/starpilot/third_party/influxdb_client/domain/remote_connection_creation_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/remote_connection_creation_request.py rename to starpilot/third_party/influxdb_client/domain/remote_connection_creation_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/remote_connection_update_request.py b/starpilot/third_party/influxdb_client/domain/remote_connection_update_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/remote_connection_update_request.py rename to starpilot/third_party/influxdb_client/domain/remote_connection_update_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/remote_connections.py b/starpilot/third_party/influxdb_client/domain/remote_connections.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/remote_connections.py rename to starpilot/third_party/influxdb_client/domain/remote_connections.py diff --git a/frogpilot/third_party/influxdb_client/domain/renamable_field.py b/starpilot/third_party/influxdb_client/domain/renamable_field.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/renamable_field.py rename to starpilot/third_party/influxdb_client/domain/renamable_field.py diff --git a/frogpilot/third_party/influxdb_client/domain/replication.py b/starpilot/third_party/influxdb_client/domain/replication.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/replication.py rename to starpilot/third_party/influxdb_client/domain/replication.py diff --git a/frogpilot/third_party/influxdb_client/domain/replication_creation_request.py b/starpilot/third_party/influxdb_client/domain/replication_creation_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/replication_creation_request.py rename to starpilot/third_party/influxdb_client/domain/replication_creation_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/replication_update_request.py b/starpilot/third_party/influxdb_client/domain/replication_update_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/replication_update_request.py rename to starpilot/third_party/influxdb_client/domain/replication_update_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/replications.py b/starpilot/third_party/influxdb_client/domain/replications.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/replications.py rename to starpilot/third_party/influxdb_client/domain/replications.py diff --git a/frogpilot/third_party/influxdb_client/domain/resource_member.py b/starpilot/third_party/influxdb_client/domain/resource_member.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/resource_member.py rename to starpilot/third_party/influxdb_client/domain/resource_member.py diff --git a/frogpilot/third_party/influxdb_client/domain/resource_members.py b/starpilot/third_party/influxdb_client/domain/resource_members.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/resource_members.py rename to starpilot/third_party/influxdb_client/domain/resource_members.py diff --git a/frogpilot/third_party/influxdb_client/domain/resource_members_links.py b/starpilot/third_party/influxdb_client/domain/resource_members_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/resource_members_links.py rename to starpilot/third_party/influxdb_client/domain/resource_members_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/resource_owner.py b/starpilot/third_party/influxdb_client/domain/resource_owner.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/resource_owner.py rename to starpilot/third_party/influxdb_client/domain/resource_owner.py diff --git a/frogpilot/third_party/influxdb_client/domain/resource_owners.py b/starpilot/third_party/influxdb_client/domain/resource_owners.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/resource_owners.py rename to starpilot/third_party/influxdb_client/domain/resource_owners.py diff --git a/frogpilot/third_party/influxdb_client/domain/restored_bucket_mappings.py b/starpilot/third_party/influxdb_client/domain/restored_bucket_mappings.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/restored_bucket_mappings.py rename to starpilot/third_party/influxdb_client/domain/restored_bucket_mappings.py diff --git a/frogpilot/third_party/influxdb_client/domain/retention_policy_manifest.py b/starpilot/third_party/influxdb_client/domain/retention_policy_manifest.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/retention_policy_manifest.py rename to starpilot/third_party/influxdb_client/domain/retention_policy_manifest.py diff --git a/frogpilot/third_party/influxdb_client/domain/return_statement.py b/starpilot/third_party/influxdb_client/domain/return_statement.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/return_statement.py rename to starpilot/third_party/influxdb_client/domain/return_statement.py diff --git a/frogpilot/third_party/influxdb_client/domain/routes.py b/starpilot/third_party/influxdb_client/domain/routes.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/routes.py rename to starpilot/third_party/influxdb_client/domain/routes.py diff --git a/frogpilot/third_party/influxdb_client/domain/routes_external.py b/starpilot/third_party/influxdb_client/domain/routes_external.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/routes_external.py rename to starpilot/third_party/influxdb_client/domain/routes_external.py diff --git a/frogpilot/third_party/influxdb_client/domain/routes_query.py b/starpilot/third_party/influxdb_client/domain/routes_query.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/routes_query.py rename to starpilot/third_party/influxdb_client/domain/routes_query.py diff --git a/frogpilot/third_party/influxdb_client/domain/routes_system.py b/starpilot/third_party/influxdb_client/domain/routes_system.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/routes_system.py rename to starpilot/third_party/influxdb_client/domain/routes_system.py diff --git a/frogpilot/third_party/influxdb_client/domain/rule_status_level.py b/starpilot/third_party/influxdb_client/domain/rule_status_level.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/rule_status_level.py rename to starpilot/third_party/influxdb_client/domain/rule_status_level.py diff --git a/frogpilot/third_party/influxdb_client/domain/run.py b/starpilot/third_party/influxdb_client/domain/run.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/run.py rename to starpilot/third_party/influxdb_client/domain/run.py diff --git a/frogpilot/third_party/influxdb_client/domain/run_links.py b/starpilot/third_party/influxdb_client/domain/run_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/run_links.py rename to starpilot/third_party/influxdb_client/domain/run_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/run_manually.py b/starpilot/third_party/influxdb_client/domain/run_manually.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/run_manually.py rename to starpilot/third_party/influxdb_client/domain/run_manually.py diff --git a/frogpilot/third_party/influxdb_client/domain/runs.py b/starpilot/third_party/influxdb_client/domain/runs.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/runs.py rename to starpilot/third_party/influxdb_client/domain/runs.py diff --git a/frogpilot/third_party/influxdb_client/domain/scatter_view_properties.py b/starpilot/third_party/influxdb_client/domain/scatter_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/scatter_view_properties.py rename to starpilot/third_party/influxdb_client/domain/scatter_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/schema_type.py b/starpilot/third_party/influxdb_client/domain/schema_type.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/schema_type.py rename to starpilot/third_party/influxdb_client/domain/schema_type.py diff --git a/frogpilot/third_party/influxdb_client/domain/scraper_target_request.py b/starpilot/third_party/influxdb_client/domain/scraper_target_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/scraper_target_request.py rename to starpilot/third_party/influxdb_client/domain/scraper_target_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/scraper_target_response.py b/starpilot/third_party/influxdb_client/domain/scraper_target_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/scraper_target_response.py rename to starpilot/third_party/influxdb_client/domain/scraper_target_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/scraper_target_responses.py b/starpilot/third_party/influxdb_client/domain/scraper_target_responses.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/scraper_target_responses.py rename to starpilot/third_party/influxdb_client/domain/scraper_target_responses.py diff --git a/frogpilot/third_party/influxdb_client/domain/script.py b/starpilot/third_party/influxdb_client/domain/script.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/script.py rename to starpilot/third_party/influxdb_client/domain/script.py diff --git a/frogpilot/third_party/influxdb_client/domain/script_create_request.py b/starpilot/third_party/influxdb_client/domain/script_create_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/script_create_request.py rename to starpilot/third_party/influxdb_client/domain/script_create_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/script_invocation_params.py b/starpilot/third_party/influxdb_client/domain/script_invocation_params.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/script_invocation_params.py rename to starpilot/third_party/influxdb_client/domain/script_invocation_params.py diff --git a/frogpilot/third_party/influxdb_client/domain/script_language.py b/starpilot/third_party/influxdb_client/domain/script_language.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/script_language.py rename to starpilot/third_party/influxdb_client/domain/script_language.py diff --git a/frogpilot/third_party/influxdb_client/domain/script_update_request.py b/starpilot/third_party/influxdb_client/domain/script_update_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/script_update_request.py rename to starpilot/third_party/influxdb_client/domain/script_update_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/scripts.py b/starpilot/third_party/influxdb_client/domain/scripts.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/scripts.py rename to starpilot/third_party/influxdb_client/domain/scripts.py diff --git a/frogpilot/third_party/influxdb_client/domain/secret_keys.py b/starpilot/third_party/influxdb_client/domain/secret_keys.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/secret_keys.py rename to starpilot/third_party/influxdb_client/domain/secret_keys.py diff --git a/frogpilot/third_party/influxdb_client/domain/secret_keys_response.py b/starpilot/third_party/influxdb_client/domain/secret_keys_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/secret_keys_response.py rename to starpilot/third_party/influxdb_client/domain/secret_keys_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/shard_group_manifest.py b/starpilot/third_party/influxdb_client/domain/shard_group_manifest.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/shard_group_manifest.py rename to starpilot/third_party/influxdb_client/domain/shard_group_manifest.py diff --git a/frogpilot/third_party/influxdb_client/domain/shard_manifest.py b/starpilot/third_party/influxdb_client/domain/shard_manifest.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/shard_manifest.py rename to starpilot/third_party/influxdb_client/domain/shard_manifest.py diff --git a/frogpilot/third_party/influxdb_client/domain/shard_owner.py b/starpilot/third_party/influxdb_client/domain/shard_owner.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/shard_owner.py rename to starpilot/third_party/influxdb_client/domain/shard_owner.py diff --git a/frogpilot/third_party/influxdb_client/domain/simple_table_view_properties.py b/starpilot/third_party/influxdb_client/domain/simple_table_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/simple_table_view_properties.py rename to starpilot/third_party/influxdb_client/domain/simple_table_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/single_stat_view_properties.py b/starpilot/third_party/influxdb_client/domain/single_stat_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/single_stat_view_properties.py rename to starpilot/third_party/influxdb_client/domain/single_stat_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/slack_notification_endpoint.py b/starpilot/third_party/influxdb_client/domain/slack_notification_endpoint.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/slack_notification_endpoint.py rename to starpilot/third_party/influxdb_client/domain/slack_notification_endpoint.py diff --git a/frogpilot/third_party/influxdb_client/domain/slack_notification_rule.py b/starpilot/third_party/influxdb_client/domain/slack_notification_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/slack_notification_rule.py rename to starpilot/third_party/influxdb_client/domain/slack_notification_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/slack_notification_rule_base.py b/starpilot/third_party/influxdb_client/domain/slack_notification_rule_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/slack_notification_rule_base.py rename to starpilot/third_party/influxdb_client/domain/slack_notification_rule_base.py diff --git a/frogpilot/third_party/influxdb_client/domain/smtp_notification_rule.py b/starpilot/third_party/influxdb_client/domain/smtp_notification_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/smtp_notification_rule.py rename to starpilot/third_party/influxdb_client/domain/smtp_notification_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/smtp_notification_rule_base.py b/starpilot/third_party/influxdb_client/domain/smtp_notification_rule_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/smtp_notification_rule_base.py rename to starpilot/third_party/influxdb_client/domain/smtp_notification_rule_base.py diff --git a/frogpilot/third_party/influxdb_client/domain/source.py b/starpilot/third_party/influxdb_client/domain/source.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/source.py rename to starpilot/third_party/influxdb_client/domain/source.py diff --git a/frogpilot/third_party/influxdb_client/domain/source_links.py b/starpilot/third_party/influxdb_client/domain/source_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/source_links.py rename to starpilot/third_party/influxdb_client/domain/source_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/sources.py b/starpilot/third_party/influxdb_client/domain/sources.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/sources.py rename to starpilot/third_party/influxdb_client/domain/sources.py diff --git a/frogpilot/third_party/influxdb_client/domain/stack.py b/starpilot/third_party/influxdb_client/domain/stack.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/stack.py rename to starpilot/third_party/influxdb_client/domain/stack.py diff --git a/frogpilot/third_party/influxdb_client/domain/stack_associations.py b/starpilot/third_party/influxdb_client/domain/stack_associations.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/stack_associations.py rename to starpilot/third_party/influxdb_client/domain/stack_associations.py diff --git a/frogpilot/third_party/influxdb_client/domain/stack_events.py b/starpilot/third_party/influxdb_client/domain/stack_events.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/stack_events.py rename to starpilot/third_party/influxdb_client/domain/stack_events.py diff --git a/frogpilot/third_party/influxdb_client/domain/stack_links.py b/starpilot/third_party/influxdb_client/domain/stack_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/stack_links.py rename to starpilot/third_party/influxdb_client/domain/stack_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/stack_resources.py b/starpilot/third_party/influxdb_client/domain/stack_resources.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/stack_resources.py rename to starpilot/third_party/influxdb_client/domain/stack_resources.py diff --git a/frogpilot/third_party/influxdb_client/domain/statement.py b/starpilot/third_party/influxdb_client/domain/statement.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/statement.py rename to starpilot/third_party/influxdb_client/domain/statement.py diff --git a/frogpilot/third_party/influxdb_client/domain/static_legend.py b/starpilot/third_party/influxdb_client/domain/static_legend.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/static_legend.py rename to starpilot/third_party/influxdb_client/domain/static_legend.py diff --git a/frogpilot/third_party/influxdb_client/domain/status_rule.py b/starpilot/third_party/influxdb_client/domain/status_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/status_rule.py rename to starpilot/third_party/influxdb_client/domain/status_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/string_literal.py b/starpilot/third_party/influxdb_client/domain/string_literal.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/string_literal.py rename to starpilot/third_party/influxdb_client/domain/string_literal.py diff --git a/frogpilot/third_party/influxdb_client/domain/subscription_manifest.py b/starpilot/third_party/influxdb_client/domain/subscription_manifest.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/subscription_manifest.py rename to starpilot/third_party/influxdb_client/domain/subscription_manifest.py diff --git a/frogpilot/third_party/influxdb_client/domain/table_view_properties.py b/starpilot/third_party/influxdb_client/domain/table_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/table_view_properties.py rename to starpilot/third_party/influxdb_client/domain/table_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/table_view_properties_table_options.py b/starpilot/third_party/influxdb_client/domain/table_view_properties_table_options.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/table_view_properties_table_options.py rename to starpilot/third_party/influxdb_client/domain/table_view_properties_table_options.py diff --git a/frogpilot/third_party/influxdb_client/domain/tag_rule.py b/starpilot/third_party/influxdb_client/domain/tag_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/tag_rule.py rename to starpilot/third_party/influxdb_client/domain/tag_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/task.py b/starpilot/third_party/influxdb_client/domain/task.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/task.py rename to starpilot/third_party/influxdb_client/domain/task.py diff --git a/frogpilot/third_party/influxdb_client/domain/task_create_request.py b/starpilot/third_party/influxdb_client/domain/task_create_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/task_create_request.py rename to starpilot/third_party/influxdb_client/domain/task_create_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/task_links.py b/starpilot/third_party/influxdb_client/domain/task_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/task_links.py rename to starpilot/third_party/influxdb_client/domain/task_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/task_status_type.py b/starpilot/third_party/influxdb_client/domain/task_status_type.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/task_status_type.py rename to starpilot/third_party/influxdb_client/domain/task_status_type.py diff --git a/frogpilot/third_party/influxdb_client/domain/task_update_request.py b/starpilot/third_party/influxdb_client/domain/task_update_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/task_update_request.py rename to starpilot/third_party/influxdb_client/domain/task_update_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/tasks.py b/starpilot/third_party/influxdb_client/domain/tasks.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/tasks.py rename to starpilot/third_party/influxdb_client/domain/tasks.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegraf.py b/starpilot/third_party/influxdb_client/domain/telegraf.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegraf.py rename to starpilot/third_party/influxdb_client/domain/telegraf.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegraf_plugin.py b/starpilot/third_party/influxdb_client/domain/telegraf_plugin.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegraf_plugin.py rename to starpilot/third_party/influxdb_client/domain/telegraf_plugin.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegraf_plugin_request.py b/starpilot/third_party/influxdb_client/domain/telegraf_plugin_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegraf_plugin_request.py rename to starpilot/third_party/influxdb_client/domain/telegraf_plugin_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegraf_plugin_request_plugins.py b/starpilot/third_party/influxdb_client/domain/telegraf_plugin_request_plugins.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegraf_plugin_request_plugins.py rename to starpilot/third_party/influxdb_client/domain/telegraf_plugin_request_plugins.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegraf_plugins.py b/starpilot/third_party/influxdb_client/domain/telegraf_plugins.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegraf_plugins.py rename to starpilot/third_party/influxdb_client/domain/telegraf_plugins.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegraf_request.py b/starpilot/third_party/influxdb_client/domain/telegraf_request.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegraf_request.py rename to starpilot/third_party/influxdb_client/domain/telegraf_request.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegraf_request_metadata.py b/starpilot/third_party/influxdb_client/domain/telegraf_request_metadata.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegraf_request_metadata.py rename to starpilot/third_party/influxdb_client/domain/telegraf_request_metadata.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegrafs.py b/starpilot/third_party/influxdb_client/domain/telegrafs.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegrafs.py rename to starpilot/third_party/influxdb_client/domain/telegrafs.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegram_notification_endpoint.py b/starpilot/third_party/influxdb_client/domain/telegram_notification_endpoint.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegram_notification_endpoint.py rename to starpilot/third_party/influxdb_client/domain/telegram_notification_endpoint.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegram_notification_rule.py b/starpilot/third_party/influxdb_client/domain/telegram_notification_rule.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegram_notification_rule.py rename to starpilot/third_party/influxdb_client/domain/telegram_notification_rule.py diff --git a/frogpilot/third_party/influxdb_client/domain/telegram_notification_rule_base.py b/starpilot/third_party/influxdb_client/domain/telegram_notification_rule_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/telegram_notification_rule_base.py rename to starpilot/third_party/influxdb_client/domain/telegram_notification_rule_base.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_apply.py b/starpilot/third_party/influxdb_client/domain/template_apply.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_apply.py rename to starpilot/third_party/influxdb_client/domain/template_apply.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_apply_remotes.py b/starpilot/third_party/influxdb_client/domain/template_apply_remotes.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_apply_remotes.py rename to starpilot/third_party/influxdb_client/domain/template_apply_remotes.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_apply_template.py b/starpilot/third_party/influxdb_client/domain/template_apply_template.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_apply_template.py rename to starpilot/third_party/influxdb_client/domain/template_apply_template.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_chart.py b/starpilot/third_party/influxdb_client/domain/template_chart.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_chart.py rename to starpilot/third_party/influxdb_client/domain/template_chart.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_export_by_id.py b/starpilot/third_party/influxdb_client/domain/template_export_by_id.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_export_by_id.py rename to starpilot/third_party/influxdb_client/domain/template_export_by_id.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_export_by_id_org_ids.py b/starpilot/third_party/influxdb_client/domain/template_export_by_id_org_ids.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_export_by_id_org_ids.py rename to starpilot/third_party/influxdb_client/domain/template_export_by_id_org_ids.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_export_by_id_resource_filters.py b/starpilot/third_party/influxdb_client/domain/template_export_by_id_resource_filters.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_export_by_id_resource_filters.py rename to starpilot/third_party/influxdb_client/domain/template_export_by_id_resource_filters.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_export_by_id_resources.py b/starpilot/third_party/influxdb_client/domain/template_export_by_id_resources.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_export_by_id_resources.py rename to starpilot/third_party/influxdb_client/domain/template_export_by_id_resources.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_export_by_name.py b/starpilot/third_party/influxdb_client/domain/template_export_by_name.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_export_by_name.py rename to starpilot/third_party/influxdb_client/domain/template_export_by_name.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_export_by_name_resources.py b/starpilot/third_party/influxdb_client/domain/template_export_by_name_resources.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_export_by_name_resources.py rename to starpilot/third_party/influxdb_client/domain/template_export_by_name_resources.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_kind.py b/starpilot/third_party/influxdb_client/domain/template_kind.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_kind.py rename to starpilot/third_party/influxdb_client/domain/template_kind.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary.py b/starpilot/third_party/influxdb_client/domain/template_summary.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary.py rename to starpilot/third_party/influxdb_client/domain/template_summary.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_buckets.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_buckets.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_buckets.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_buckets.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_buckets_new_old.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_buckets_new_old.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_buckets_new_old.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_buckets_new_old.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_checks.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_checks.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_checks.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_checks.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_dashboards.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_dashboards.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_dashboards.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_dashboards.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_dashboards_new_old.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_dashboards_new_old.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_dashboards_new_old.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_dashboards_new_old.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_label_mappings.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_label_mappings.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_label_mappings.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_label_mappings.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_labels.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_labels.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_labels.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_labels.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_labels_new_old.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_labels_new_old.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_labels_new_old.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_labels_new_old.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_notification_endpoints.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_notification_endpoints.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_notification_endpoints.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_notification_endpoints.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_notification_rules.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_notification_rules.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_notification_rules.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_notification_rules.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_notification_rules_new_old.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_notification_rules_new_old.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_notification_rules_new_old.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_notification_rules_new_old.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_tasks.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_tasks.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_tasks.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_tasks.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_tasks_new_old.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_tasks_new_old.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_tasks_new_old.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_tasks_new_old.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_telegraf_configs.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_telegraf_configs.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_telegraf_configs.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_telegraf_configs.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_variables.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_variables.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_variables.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_variables.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_diff_variables_new_old.py b/starpilot/third_party/influxdb_client/domain/template_summary_diff_variables_new_old.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_diff_variables_new_old.py rename to starpilot/third_party/influxdb_client/domain/template_summary_diff_variables_new_old.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_errors.py b/starpilot/third_party/influxdb_client/domain/template_summary_errors.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_errors.py rename to starpilot/third_party/influxdb_client/domain/template_summary_errors.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_label.py b/starpilot/third_party/influxdb_client/domain/template_summary_label.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_label.py rename to starpilot/third_party/influxdb_client/domain/template_summary_label.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_label_properties.py b/starpilot/third_party/influxdb_client/domain/template_summary_label_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_label_properties.py rename to starpilot/third_party/influxdb_client/domain/template_summary_label_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_summary.py b/starpilot/third_party/influxdb_client/domain/template_summary_summary.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_summary.py rename to starpilot/third_party/influxdb_client/domain/template_summary_summary.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_summary_buckets.py b/starpilot/third_party/influxdb_client/domain/template_summary_summary_buckets.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_summary_buckets.py rename to starpilot/third_party/influxdb_client/domain/template_summary_summary_buckets.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_summary_dashboards.py b/starpilot/third_party/influxdb_client/domain/template_summary_summary_dashboards.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_summary_dashboards.py rename to starpilot/third_party/influxdb_client/domain/template_summary_summary_dashboards.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_summary_label_mappings.py b/starpilot/third_party/influxdb_client/domain/template_summary_summary_label_mappings.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_summary_label_mappings.py rename to starpilot/third_party/influxdb_client/domain/template_summary_summary_label_mappings.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_summary_notification_rules.py b/starpilot/third_party/influxdb_client/domain/template_summary_summary_notification_rules.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_summary_notification_rules.py rename to starpilot/third_party/influxdb_client/domain/template_summary_summary_notification_rules.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_summary_status_rules.py b/starpilot/third_party/influxdb_client/domain/template_summary_summary_status_rules.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_summary_status_rules.py rename to starpilot/third_party/influxdb_client/domain/template_summary_summary_status_rules.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_summary_tag_rules.py b/starpilot/third_party/influxdb_client/domain/template_summary_summary_tag_rules.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_summary_tag_rules.py rename to starpilot/third_party/influxdb_client/domain/template_summary_summary_tag_rules.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_summary_tasks.py b/starpilot/third_party/influxdb_client/domain/template_summary_summary_tasks.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_summary_tasks.py rename to starpilot/third_party/influxdb_client/domain/template_summary_summary_tasks.py diff --git a/frogpilot/third_party/influxdb_client/domain/template_summary_summary_variables.py b/starpilot/third_party/influxdb_client/domain/template_summary_summary_variables.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/template_summary_summary_variables.py rename to starpilot/third_party/influxdb_client/domain/template_summary_summary_variables.py diff --git a/frogpilot/third_party/influxdb_client/domain/test_statement.py b/starpilot/third_party/influxdb_client/domain/test_statement.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/test_statement.py rename to starpilot/third_party/influxdb_client/domain/test_statement.py diff --git a/frogpilot/third_party/influxdb_client/domain/threshold.py b/starpilot/third_party/influxdb_client/domain/threshold.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/threshold.py rename to starpilot/third_party/influxdb_client/domain/threshold.py diff --git a/frogpilot/third_party/influxdb_client/domain/threshold_base.py b/starpilot/third_party/influxdb_client/domain/threshold_base.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/threshold_base.py rename to starpilot/third_party/influxdb_client/domain/threshold_base.py diff --git a/frogpilot/third_party/influxdb_client/domain/threshold_check.py b/starpilot/third_party/influxdb_client/domain/threshold_check.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/threshold_check.py rename to starpilot/third_party/influxdb_client/domain/threshold_check.py diff --git a/frogpilot/third_party/influxdb_client/domain/unary_expression.py b/starpilot/third_party/influxdb_client/domain/unary_expression.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/unary_expression.py rename to starpilot/third_party/influxdb_client/domain/unary_expression.py diff --git a/frogpilot/third_party/influxdb_client/domain/unsigned_integer_literal.py b/starpilot/third_party/influxdb_client/domain/unsigned_integer_literal.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/unsigned_integer_literal.py rename to starpilot/third_party/influxdb_client/domain/unsigned_integer_literal.py diff --git a/frogpilot/third_party/influxdb_client/domain/user.py b/starpilot/third_party/influxdb_client/domain/user.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/user.py rename to starpilot/third_party/influxdb_client/domain/user.py diff --git a/frogpilot/third_party/influxdb_client/domain/user_response.py b/starpilot/third_party/influxdb_client/domain/user_response.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/user_response.py rename to starpilot/third_party/influxdb_client/domain/user_response.py diff --git a/frogpilot/third_party/influxdb_client/domain/user_response_links.py b/starpilot/third_party/influxdb_client/domain/user_response_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/user_response_links.py rename to starpilot/third_party/influxdb_client/domain/user_response_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/users.py b/starpilot/third_party/influxdb_client/domain/users.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/users.py rename to starpilot/third_party/influxdb_client/domain/users.py diff --git a/frogpilot/third_party/influxdb_client/domain/variable.py b/starpilot/third_party/influxdb_client/domain/variable.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/variable.py rename to starpilot/third_party/influxdb_client/domain/variable.py diff --git a/frogpilot/third_party/influxdb_client/domain/variable_assignment.py b/starpilot/third_party/influxdb_client/domain/variable_assignment.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/variable_assignment.py rename to starpilot/third_party/influxdb_client/domain/variable_assignment.py diff --git a/frogpilot/third_party/influxdb_client/domain/variable_links.py b/starpilot/third_party/influxdb_client/domain/variable_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/variable_links.py rename to starpilot/third_party/influxdb_client/domain/variable_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/variable_properties.py b/starpilot/third_party/influxdb_client/domain/variable_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/variable_properties.py rename to starpilot/third_party/influxdb_client/domain/variable_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/variables.py b/starpilot/third_party/influxdb_client/domain/variables.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/variables.py rename to starpilot/third_party/influxdb_client/domain/variables.py diff --git a/frogpilot/third_party/influxdb_client/domain/view.py b/starpilot/third_party/influxdb_client/domain/view.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/view.py rename to starpilot/third_party/influxdb_client/domain/view.py diff --git a/frogpilot/third_party/influxdb_client/domain/view_links.py b/starpilot/third_party/influxdb_client/domain/view_links.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/view_links.py rename to starpilot/third_party/influxdb_client/domain/view_links.py diff --git a/frogpilot/third_party/influxdb_client/domain/view_properties.py b/starpilot/third_party/influxdb_client/domain/view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/view_properties.py rename to starpilot/third_party/influxdb_client/domain/view_properties.py diff --git a/frogpilot/third_party/influxdb_client/domain/views.py b/starpilot/third_party/influxdb_client/domain/views.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/views.py rename to starpilot/third_party/influxdb_client/domain/views.py diff --git a/frogpilot/third_party/influxdb_client/domain/write_precision.py b/starpilot/third_party/influxdb_client/domain/write_precision.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/write_precision.py rename to starpilot/third_party/influxdb_client/domain/write_precision.py diff --git a/frogpilot/third_party/influxdb_client/domain/xy_geom.py b/starpilot/third_party/influxdb_client/domain/xy_geom.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/xy_geom.py rename to starpilot/third_party/influxdb_client/domain/xy_geom.py diff --git a/frogpilot/third_party/influxdb_client/domain/xy_view_properties.py b/starpilot/third_party/influxdb_client/domain/xy_view_properties.py similarity index 100% rename from frogpilot/third_party/influxdb_client/domain/xy_view_properties.py rename to starpilot/third_party/influxdb_client/domain/xy_view_properties.py diff --git a/frogpilot/third_party/influxdb_client/extras.py b/starpilot/third_party/influxdb_client/extras.py similarity index 100% rename from frogpilot/third_party/influxdb_client/extras.py rename to starpilot/third_party/influxdb_client/extras.py diff --git a/frogpilot/third_party/influxdb_client/py.typed b/starpilot/third_party/influxdb_client/py.typed similarity index 100% rename from frogpilot/third_party/influxdb_client/py.typed rename to starpilot/third_party/influxdb_client/py.typed diff --git a/frogpilot/third_party/influxdb_client/rest.py b/starpilot/third_party/influxdb_client/rest.py similarity index 100% rename from frogpilot/third_party/influxdb_client/rest.py rename to starpilot/third_party/influxdb_client/rest.py diff --git a/frogpilot/third_party/influxdb_client/service/__init__.py b/starpilot/third_party/influxdb_client/service/__init__.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/__init__.py rename to starpilot/third_party/influxdb_client/service/__init__.py diff --git a/frogpilot/third_party/influxdb_client/service/_base_service.py b/starpilot/third_party/influxdb_client/service/_base_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/_base_service.py rename to starpilot/third_party/influxdb_client/service/_base_service.py diff --git a/frogpilot/third_party/influxdb_client/service/authorizations_service.py b/starpilot/third_party/influxdb_client/service/authorizations_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/authorizations_service.py rename to starpilot/third_party/influxdb_client/service/authorizations_service.py diff --git a/frogpilot/third_party/influxdb_client/service/backup_service.py b/starpilot/third_party/influxdb_client/service/backup_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/backup_service.py rename to starpilot/third_party/influxdb_client/service/backup_service.py diff --git a/frogpilot/third_party/influxdb_client/service/bucket_schemas_service.py b/starpilot/third_party/influxdb_client/service/bucket_schemas_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/bucket_schemas_service.py rename to starpilot/third_party/influxdb_client/service/bucket_schemas_service.py diff --git a/frogpilot/third_party/influxdb_client/service/buckets_service.py b/starpilot/third_party/influxdb_client/service/buckets_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/buckets_service.py rename to starpilot/third_party/influxdb_client/service/buckets_service.py diff --git a/frogpilot/third_party/influxdb_client/service/cells_service.py b/starpilot/third_party/influxdb_client/service/cells_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/cells_service.py rename to starpilot/third_party/influxdb_client/service/cells_service.py diff --git a/frogpilot/third_party/influxdb_client/service/checks_service.py b/starpilot/third_party/influxdb_client/service/checks_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/checks_service.py rename to starpilot/third_party/influxdb_client/service/checks_service.py diff --git a/frogpilot/third_party/influxdb_client/service/config_service.py b/starpilot/third_party/influxdb_client/service/config_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/config_service.py rename to starpilot/third_party/influxdb_client/service/config_service.py diff --git a/frogpilot/third_party/influxdb_client/service/dashboards_service.py b/starpilot/third_party/influxdb_client/service/dashboards_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/dashboards_service.py rename to starpilot/third_party/influxdb_client/service/dashboards_service.py diff --git a/frogpilot/third_party/influxdb_client/service/dbr_ps_service.py b/starpilot/third_party/influxdb_client/service/dbr_ps_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/dbr_ps_service.py rename to starpilot/third_party/influxdb_client/service/dbr_ps_service.py diff --git a/frogpilot/third_party/influxdb_client/service/delete_service.py b/starpilot/third_party/influxdb_client/service/delete_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/delete_service.py rename to starpilot/third_party/influxdb_client/service/delete_service.py diff --git a/frogpilot/third_party/influxdb_client/service/health_service.py b/starpilot/third_party/influxdb_client/service/health_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/health_service.py rename to starpilot/third_party/influxdb_client/service/health_service.py diff --git a/frogpilot/third_party/influxdb_client/service/invokable_scripts_service.py b/starpilot/third_party/influxdb_client/service/invokable_scripts_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/invokable_scripts_service.py rename to starpilot/third_party/influxdb_client/service/invokable_scripts_service.py diff --git a/frogpilot/third_party/influxdb_client/service/labels_service.py b/starpilot/third_party/influxdb_client/service/labels_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/labels_service.py rename to starpilot/third_party/influxdb_client/service/labels_service.py diff --git a/frogpilot/third_party/influxdb_client/service/legacy_authorizations_service.py b/starpilot/third_party/influxdb_client/service/legacy_authorizations_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/legacy_authorizations_service.py rename to starpilot/third_party/influxdb_client/service/legacy_authorizations_service.py diff --git a/frogpilot/third_party/influxdb_client/service/metrics_service.py b/starpilot/third_party/influxdb_client/service/metrics_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/metrics_service.py rename to starpilot/third_party/influxdb_client/service/metrics_service.py diff --git a/frogpilot/third_party/influxdb_client/service/notification_endpoints_service.py b/starpilot/third_party/influxdb_client/service/notification_endpoints_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/notification_endpoints_service.py rename to starpilot/third_party/influxdb_client/service/notification_endpoints_service.py diff --git a/frogpilot/third_party/influxdb_client/service/notification_rules_service.py b/starpilot/third_party/influxdb_client/service/notification_rules_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/notification_rules_service.py rename to starpilot/third_party/influxdb_client/service/notification_rules_service.py diff --git a/frogpilot/third_party/influxdb_client/service/organizations_service.py b/starpilot/third_party/influxdb_client/service/organizations_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/organizations_service.py rename to starpilot/third_party/influxdb_client/service/organizations_service.py diff --git a/frogpilot/third_party/influxdb_client/service/ping_service.py b/starpilot/third_party/influxdb_client/service/ping_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/ping_service.py rename to starpilot/third_party/influxdb_client/service/ping_service.py diff --git a/frogpilot/third_party/influxdb_client/service/query_service.py b/starpilot/third_party/influxdb_client/service/query_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/query_service.py rename to starpilot/third_party/influxdb_client/service/query_service.py diff --git a/frogpilot/third_party/influxdb_client/service/ready_service.py b/starpilot/third_party/influxdb_client/service/ready_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/ready_service.py rename to starpilot/third_party/influxdb_client/service/ready_service.py diff --git a/frogpilot/third_party/influxdb_client/service/remote_connections_service.py b/starpilot/third_party/influxdb_client/service/remote_connections_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/remote_connections_service.py rename to starpilot/third_party/influxdb_client/service/remote_connections_service.py diff --git a/frogpilot/third_party/influxdb_client/service/replications_service.py b/starpilot/third_party/influxdb_client/service/replications_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/replications_service.py rename to starpilot/third_party/influxdb_client/service/replications_service.py diff --git a/frogpilot/third_party/influxdb_client/service/resources_service.py b/starpilot/third_party/influxdb_client/service/resources_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/resources_service.py rename to starpilot/third_party/influxdb_client/service/resources_service.py diff --git a/frogpilot/third_party/influxdb_client/service/restore_service.py b/starpilot/third_party/influxdb_client/service/restore_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/restore_service.py rename to starpilot/third_party/influxdb_client/service/restore_service.py diff --git a/frogpilot/third_party/influxdb_client/service/routes_service.py b/starpilot/third_party/influxdb_client/service/routes_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/routes_service.py rename to starpilot/third_party/influxdb_client/service/routes_service.py diff --git a/frogpilot/third_party/influxdb_client/service/rules_service.py b/starpilot/third_party/influxdb_client/service/rules_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/rules_service.py rename to starpilot/third_party/influxdb_client/service/rules_service.py diff --git a/frogpilot/third_party/influxdb_client/service/scraper_targets_service.py b/starpilot/third_party/influxdb_client/service/scraper_targets_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/scraper_targets_service.py rename to starpilot/third_party/influxdb_client/service/scraper_targets_service.py diff --git a/frogpilot/third_party/influxdb_client/service/secrets_service.py b/starpilot/third_party/influxdb_client/service/secrets_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/secrets_service.py rename to starpilot/third_party/influxdb_client/service/secrets_service.py diff --git a/frogpilot/third_party/influxdb_client/service/setup_service.py b/starpilot/third_party/influxdb_client/service/setup_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/setup_service.py rename to starpilot/third_party/influxdb_client/service/setup_service.py diff --git a/frogpilot/third_party/influxdb_client/service/signin_service.py b/starpilot/third_party/influxdb_client/service/signin_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/signin_service.py rename to starpilot/third_party/influxdb_client/service/signin_service.py diff --git a/frogpilot/third_party/influxdb_client/service/signout_service.py b/starpilot/third_party/influxdb_client/service/signout_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/signout_service.py rename to starpilot/third_party/influxdb_client/service/signout_service.py diff --git a/frogpilot/third_party/influxdb_client/service/sources_service.py b/starpilot/third_party/influxdb_client/service/sources_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/sources_service.py rename to starpilot/third_party/influxdb_client/service/sources_service.py diff --git a/frogpilot/third_party/influxdb_client/service/tasks_service.py b/starpilot/third_party/influxdb_client/service/tasks_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/tasks_service.py rename to starpilot/third_party/influxdb_client/service/tasks_service.py diff --git a/frogpilot/third_party/influxdb_client/service/telegraf_plugins_service.py b/starpilot/third_party/influxdb_client/service/telegraf_plugins_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/telegraf_plugins_service.py rename to starpilot/third_party/influxdb_client/service/telegraf_plugins_service.py diff --git a/frogpilot/third_party/influxdb_client/service/telegrafs_service.py b/starpilot/third_party/influxdb_client/service/telegrafs_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/telegrafs_service.py rename to starpilot/third_party/influxdb_client/service/telegrafs_service.py diff --git a/frogpilot/third_party/influxdb_client/service/templates_service.py b/starpilot/third_party/influxdb_client/service/templates_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/templates_service.py rename to starpilot/third_party/influxdb_client/service/templates_service.py diff --git a/frogpilot/third_party/influxdb_client/service/users_service.py b/starpilot/third_party/influxdb_client/service/users_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/users_service.py rename to starpilot/third_party/influxdb_client/service/users_service.py diff --git a/frogpilot/third_party/influxdb_client/service/variables_service.py b/starpilot/third_party/influxdb_client/service/variables_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/variables_service.py rename to starpilot/third_party/influxdb_client/service/variables_service.py diff --git a/frogpilot/third_party/influxdb_client/service/views_service.py b/starpilot/third_party/influxdb_client/service/views_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/views_service.py rename to starpilot/third_party/influxdb_client/service/views_service.py diff --git a/frogpilot/third_party/influxdb_client/service/write_service.py b/starpilot/third_party/influxdb_client/service/write_service.py similarity index 100% rename from frogpilot/third_party/influxdb_client/service/write_service.py rename to starpilot/third_party/influxdb_client/service/write_service.py diff --git a/frogpilot/third_party/influxdb_client/version.py b/starpilot/third_party/influxdb_client/version.py similarity index 100% rename from frogpilot/third_party/influxdb_client/version.py rename to starpilot/third_party/influxdb_client/version.py diff --git a/frogpilot/third_party/itsdangerous-2.2.0.dist-info/INSTALLER b/starpilot/third_party/itsdangerous-2.2.0.dist-info/INSTALLER similarity index 100% rename from frogpilot/third_party/itsdangerous-2.2.0.dist-info/INSTALLER rename to starpilot/third_party/itsdangerous-2.2.0.dist-info/INSTALLER diff --git a/frogpilot/third_party/itsdangerous-2.2.0.dist-info/LICENSE.txt b/starpilot/third_party/itsdangerous-2.2.0.dist-info/LICENSE.txt similarity index 100% rename from frogpilot/third_party/itsdangerous-2.2.0.dist-info/LICENSE.txt rename to starpilot/third_party/itsdangerous-2.2.0.dist-info/LICENSE.txt diff --git a/frogpilot/third_party/itsdangerous-2.2.0.dist-info/METADATA b/starpilot/third_party/itsdangerous-2.2.0.dist-info/METADATA similarity index 100% rename from frogpilot/third_party/itsdangerous-2.2.0.dist-info/METADATA rename to starpilot/third_party/itsdangerous-2.2.0.dist-info/METADATA diff --git a/frogpilot/third_party/itsdangerous-2.2.0.dist-info/RECORD b/starpilot/third_party/itsdangerous-2.2.0.dist-info/RECORD similarity index 100% rename from frogpilot/third_party/itsdangerous-2.2.0.dist-info/RECORD rename to starpilot/third_party/itsdangerous-2.2.0.dist-info/RECORD diff --git a/frogpilot/third_party/itsdangerous-2.2.0.dist-info/REQUESTED b/starpilot/third_party/itsdangerous-2.2.0.dist-info/REQUESTED similarity index 100% rename from frogpilot/third_party/itsdangerous-2.2.0.dist-info/REQUESTED rename to starpilot/third_party/itsdangerous-2.2.0.dist-info/REQUESTED diff --git a/frogpilot/third_party/itsdangerous-2.2.0.dist-info/WHEEL b/starpilot/third_party/itsdangerous-2.2.0.dist-info/WHEEL similarity index 100% rename from frogpilot/third_party/itsdangerous-2.2.0.dist-info/WHEEL rename to starpilot/third_party/itsdangerous-2.2.0.dist-info/WHEEL diff --git a/frogpilot/third_party/itsdangerous/__init__.py b/starpilot/third_party/itsdangerous/__init__.py similarity index 100% rename from frogpilot/third_party/itsdangerous/__init__.py rename to starpilot/third_party/itsdangerous/__init__.py diff --git a/frogpilot/third_party/itsdangerous/_json.py b/starpilot/third_party/itsdangerous/_json.py similarity index 100% rename from frogpilot/third_party/itsdangerous/_json.py rename to starpilot/third_party/itsdangerous/_json.py diff --git a/frogpilot/third_party/itsdangerous/encoding.py b/starpilot/third_party/itsdangerous/encoding.py similarity index 100% rename from frogpilot/third_party/itsdangerous/encoding.py rename to starpilot/third_party/itsdangerous/encoding.py diff --git a/frogpilot/third_party/itsdangerous/exc.py b/starpilot/third_party/itsdangerous/exc.py similarity index 100% rename from frogpilot/third_party/itsdangerous/exc.py rename to starpilot/third_party/itsdangerous/exc.py diff --git a/frogpilot/third_party/itsdangerous/py.typed b/starpilot/third_party/itsdangerous/py.typed similarity index 100% rename from frogpilot/third_party/itsdangerous/py.typed rename to starpilot/third_party/itsdangerous/py.typed diff --git a/frogpilot/third_party/itsdangerous/serializer.py b/starpilot/third_party/itsdangerous/serializer.py similarity index 100% rename from frogpilot/third_party/itsdangerous/serializer.py rename to starpilot/third_party/itsdangerous/serializer.py diff --git a/frogpilot/third_party/itsdangerous/signer.py b/starpilot/third_party/itsdangerous/signer.py similarity index 100% rename from frogpilot/third_party/itsdangerous/signer.py rename to starpilot/third_party/itsdangerous/signer.py diff --git a/frogpilot/third_party/itsdangerous/timed.py b/starpilot/third_party/itsdangerous/timed.py similarity index 100% rename from frogpilot/third_party/itsdangerous/timed.py rename to starpilot/third_party/itsdangerous/timed.py diff --git a/frogpilot/third_party/itsdangerous/url_safe.py b/starpilot/third_party/itsdangerous/url_safe.py similarity index 100% rename from frogpilot/third_party/itsdangerous/url_safe.py rename to starpilot/third_party/itsdangerous/url_safe.py diff --git a/frogpilot/third_party/jinja2-3.1.6.dist-info/INSTALLER b/starpilot/third_party/jinja2-3.1.6.dist-info/INSTALLER similarity index 100% rename from frogpilot/third_party/jinja2-3.1.6.dist-info/INSTALLER rename to starpilot/third_party/jinja2-3.1.6.dist-info/INSTALLER diff --git a/frogpilot/third_party/jinja2-3.1.6.dist-info/METADATA b/starpilot/third_party/jinja2-3.1.6.dist-info/METADATA similarity index 100% rename from frogpilot/third_party/jinja2-3.1.6.dist-info/METADATA rename to starpilot/third_party/jinja2-3.1.6.dist-info/METADATA diff --git a/frogpilot/third_party/jinja2-3.1.6.dist-info/RECORD b/starpilot/third_party/jinja2-3.1.6.dist-info/RECORD similarity index 100% rename from frogpilot/third_party/jinja2-3.1.6.dist-info/RECORD rename to starpilot/third_party/jinja2-3.1.6.dist-info/RECORD diff --git a/frogpilot/third_party/jinja2-3.1.6.dist-info/REQUESTED b/starpilot/third_party/jinja2-3.1.6.dist-info/REQUESTED similarity index 100% rename from frogpilot/third_party/jinja2-3.1.6.dist-info/REQUESTED rename to starpilot/third_party/jinja2-3.1.6.dist-info/REQUESTED diff --git a/frogpilot/third_party/jinja2-3.1.6.dist-info/WHEEL b/starpilot/third_party/jinja2-3.1.6.dist-info/WHEEL similarity index 100% rename from frogpilot/third_party/jinja2-3.1.6.dist-info/WHEEL rename to starpilot/third_party/jinja2-3.1.6.dist-info/WHEEL diff --git a/frogpilot/third_party/jinja2-3.1.6.dist-info/entry_points.txt b/starpilot/third_party/jinja2-3.1.6.dist-info/entry_points.txt similarity index 100% rename from frogpilot/third_party/jinja2-3.1.6.dist-info/entry_points.txt rename to starpilot/third_party/jinja2-3.1.6.dist-info/entry_points.txt diff --git a/frogpilot/third_party/jinja2-3.1.6.dist-info/licenses/LICENSE.txt b/starpilot/third_party/jinja2-3.1.6.dist-info/licenses/LICENSE.txt similarity index 100% rename from frogpilot/third_party/jinja2-3.1.6.dist-info/licenses/LICENSE.txt rename to starpilot/third_party/jinja2-3.1.6.dist-info/licenses/LICENSE.txt diff --git a/frogpilot/third_party/jinja2/__init__.py b/starpilot/third_party/jinja2/__init__.py similarity index 100% rename from frogpilot/third_party/jinja2/__init__.py rename to starpilot/third_party/jinja2/__init__.py diff --git a/frogpilot/third_party/jinja2/_identifier.py b/starpilot/third_party/jinja2/_identifier.py similarity index 100% rename from frogpilot/third_party/jinja2/_identifier.py rename to starpilot/third_party/jinja2/_identifier.py diff --git a/frogpilot/third_party/jinja2/async_utils.py b/starpilot/third_party/jinja2/async_utils.py similarity index 100% rename from frogpilot/third_party/jinja2/async_utils.py rename to starpilot/third_party/jinja2/async_utils.py diff --git a/frogpilot/third_party/jinja2/bccache.py b/starpilot/third_party/jinja2/bccache.py similarity index 100% rename from frogpilot/third_party/jinja2/bccache.py rename to starpilot/third_party/jinja2/bccache.py diff --git a/frogpilot/third_party/jinja2/compiler.py b/starpilot/third_party/jinja2/compiler.py similarity index 100% rename from frogpilot/third_party/jinja2/compiler.py rename to starpilot/third_party/jinja2/compiler.py diff --git a/frogpilot/third_party/jinja2/constants.py b/starpilot/third_party/jinja2/constants.py similarity index 100% rename from frogpilot/third_party/jinja2/constants.py rename to starpilot/third_party/jinja2/constants.py diff --git a/frogpilot/third_party/jinja2/debug.py b/starpilot/third_party/jinja2/debug.py similarity index 100% rename from frogpilot/third_party/jinja2/debug.py rename to starpilot/third_party/jinja2/debug.py diff --git a/frogpilot/third_party/jinja2/defaults.py b/starpilot/third_party/jinja2/defaults.py similarity index 100% rename from frogpilot/third_party/jinja2/defaults.py rename to starpilot/third_party/jinja2/defaults.py diff --git a/frogpilot/third_party/jinja2/environment.py b/starpilot/third_party/jinja2/environment.py similarity index 100% rename from frogpilot/third_party/jinja2/environment.py rename to starpilot/third_party/jinja2/environment.py diff --git a/frogpilot/third_party/jinja2/exceptions.py b/starpilot/third_party/jinja2/exceptions.py similarity index 100% rename from frogpilot/third_party/jinja2/exceptions.py rename to starpilot/third_party/jinja2/exceptions.py diff --git a/frogpilot/third_party/jinja2/ext.py b/starpilot/third_party/jinja2/ext.py similarity index 100% rename from frogpilot/third_party/jinja2/ext.py rename to starpilot/third_party/jinja2/ext.py diff --git a/frogpilot/third_party/jinja2/filters.py b/starpilot/third_party/jinja2/filters.py similarity index 100% rename from frogpilot/third_party/jinja2/filters.py rename to starpilot/third_party/jinja2/filters.py diff --git a/frogpilot/third_party/jinja2/idtracking.py b/starpilot/third_party/jinja2/idtracking.py similarity index 100% rename from frogpilot/third_party/jinja2/idtracking.py rename to starpilot/third_party/jinja2/idtracking.py diff --git a/frogpilot/third_party/jinja2/lexer.py b/starpilot/third_party/jinja2/lexer.py similarity index 100% rename from frogpilot/third_party/jinja2/lexer.py rename to starpilot/third_party/jinja2/lexer.py diff --git a/frogpilot/third_party/jinja2/loaders.py b/starpilot/third_party/jinja2/loaders.py similarity index 100% rename from frogpilot/third_party/jinja2/loaders.py rename to starpilot/third_party/jinja2/loaders.py diff --git a/frogpilot/third_party/jinja2/meta.py b/starpilot/third_party/jinja2/meta.py similarity index 100% rename from frogpilot/third_party/jinja2/meta.py rename to starpilot/third_party/jinja2/meta.py diff --git a/frogpilot/third_party/jinja2/nativetypes.py b/starpilot/third_party/jinja2/nativetypes.py similarity index 100% rename from frogpilot/third_party/jinja2/nativetypes.py rename to starpilot/third_party/jinja2/nativetypes.py diff --git a/frogpilot/third_party/jinja2/nodes.py b/starpilot/third_party/jinja2/nodes.py similarity index 100% rename from frogpilot/third_party/jinja2/nodes.py rename to starpilot/third_party/jinja2/nodes.py diff --git a/frogpilot/third_party/jinja2/optimizer.py b/starpilot/third_party/jinja2/optimizer.py similarity index 100% rename from frogpilot/third_party/jinja2/optimizer.py rename to starpilot/third_party/jinja2/optimizer.py diff --git a/frogpilot/third_party/jinja2/parser.py b/starpilot/third_party/jinja2/parser.py similarity index 100% rename from frogpilot/third_party/jinja2/parser.py rename to starpilot/third_party/jinja2/parser.py diff --git a/frogpilot/third_party/jinja2/py.typed b/starpilot/third_party/jinja2/py.typed similarity index 100% rename from frogpilot/third_party/jinja2/py.typed rename to starpilot/third_party/jinja2/py.typed diff --git a/frogpilot/third_party/jinja2/runtime.py b/starpilot/third_party/jinja2/runtime.py similarity index 100% rename from frogpilot/third_party/jinja2/runtime.py rename to starpilot/third_party/jinja2/runtime.py diff --git a/frogpilot/third_party/jinja2/sandbox.py b/starpilot/third_party/jinja2/sandbox.py similarity index 100% rename from frogpilot/third_party/jinja2/sandbox.py rename to starpilot/third_party/jinja2/sandbox.py diff --git a/frogpilot/third_party/jinja2/tests.py b/starpilot/third_party/jinja2/tests.py similarity index 100% rename from frogpilot/third_party/jinja2/tests.py rename to starpilot/third_party/jinja2/tests.py diff --git a/frogpilot/third_party/jinja2/utils.py b/starpilot/third_party/jinja2/utils.py similarity index 100% rename from frogpilot/third_party/jinja2/utils.py rename to starpilot/third_party/jinja2/utils.py diff --git a/frogpilot/third_party/jinja2/visitor.py b/starpilot/third_party/jinja2/visitor.py similarity index 100% rename from frogpilot/third_party/jinja2/visitor.py rename to starpilot/third_party/jinja2/visitor.py diff --git a/frogpilot/third_party/kaitaistruct.py b/starpilot/third_party/kaitaistruct.py similarity index 100% rename from frogpilot/third_party/kaitaistruct.py rename to starpilot/third_party/kaitaistruct.py diff --git a/frogpilot/third_party/markupsafe-3.0.3.dist-info/INSTALLER b/starpilot/third_party/markupsafe-3.0.3.dist-info/INSTALLER similarity index 100% rename from frogpilot/third_party/markupsafe-3.0.3.dist-info/INSTALLER rename to starpilot/third_party/markupsafe-3.0.3.dist-info/INSTALLER diff --git a/frogpilot/third_party/markupsafe-3.0.3.dist-info/METADATA b/starpilot/third_party/markupsafe-3.0.3.dist-info/METADATA similarity index 100% rename from frogpilot/third_party/markupsafe-3.0.3.dist-info/METADATA rename to starpilot/third_party/markupsafe-3.0.3.dist-info/METADATA diff --git a/frogpilot/third_party/markupsafe-3.0.3.dist-info/RECORD b/starpilot/third_party/markupsafe-3.0.3.dist-info/RECORD similarity index 100% rename from frogpilot/third_party/markupsafe-3.0.3.dist-info/RECORD rename to starpilot/third_party/markupsafe-3.0.3.dist-info/RECORD diff --git a/frogpilot/third_party/markupsafe-3.0.3.dist-info/REQUESTED b/starpilot/third_party/markupsafe-3.0.3.dist-info/REQUESTED similarity index 100% rename from frogpilot/third_party/markupsafe-3.0.3.dist-info/REQUESTED rename to starpilot/third_party/markupsafe-3.0.3.dist-info/REQUESTED diff --git a/frogpilot/third_party/markupsafe-3.0.3.dist-info/WHEEL b/starpilot/third_party/markupsafe-3.0.3.dist-info/WHEEL similarity index 100% rename from frogpilot/third_party/markupsafe-3.0.3.dist-info/WHEEL rename to starpilot/third_party/markupsafe-3.0.3.dist-info/WHEEL diff --git a/frogpilot/third_party/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt b/starpilot/third_party/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt similarity index 100% rename from frogpilot/third_party/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt rename to starpilot/third_party/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt diff --git a/frogpilot/third_party/markupsafe-3.0.3.dist-info/top_level.txt b/starpilot/third_party/markupsafe-3.0.3.dist-info/top_level.txt similarity index 100% rename from frogpilot/third_party/markupsafe-3.0.3.dist-info/top_level.txt rename to starpilot/third_party/markupsafe-3.0.3.dist-info/top_level.txt diff --git a/frogpilot/third_party/markupsafe/__init__.py b/starpilot/third_party/markupsafe/__init__.py similarity index 100% rename from frogpilot/third_party/markupsafe/__init__.py rename to starpilot/third_party/markupsafe/__init__.py diff --git a/frogpilot/third_party/markupsafe/_native.py b/starpilot/third_party/markupsafe/_native.py similarity index 100% rename from frogpilot/third_party/markupsafe/_native.py rename to starpilot/third_party/markupsafe/_native.py diff --git a/frogpilot/third_party/markupsafe/_speedups.c b/starpilot/third_party/markupsafe/_speedups.c similarity index 100% rename from frogpilot/third_party/markupsafe/_speedups.c rename to starpilot/third_party/markupsafe/_speedups.c diff --git a/frogpilot/third_party/markupsafe/_speedups.pyi b/starpilot/third_party/markupsafe/_speedups.pyi similarity index 100% rename from frogpilot/third_party/markupsafe/_speedups.pyi rename to starpilot/third_party/markupsafe/_speedups.pyi diff --git a/frogpilot/third_party/markupsafe/py.typed b/starpilot/third_party/markupsafe/py.typed similarity index 100% rename from frogpilot/third_party/markupsafe/py.typed rename to starpilot/third_party/markupsafe/py.typed diff --git a/frogpilot/third_party/pydub-0.25.1.dist-info/AUTHORS b/starpilot/third_party/pydub-0.25.1.dist-info/AUTHORS similarity index 100% rename from frogpilot/third_party/pydub-0.25.1.dist-info/AUTHORS rename to starpilot/third_party/pydub-0.25.1.dist-info/AUTHORS diff --git a/frogpilot/third_party/pydub-0.25.1.dist-info/INSTALLER b/starpilot/third_party/pydub-0.25.1.dist-info/INSTALLER similarity index 100% rename from frogpilot/third_party/pydub-0.25.1.dist-info/INSTALLER rename to starpilot/third_party/pydub-0.25.1.dist-info/INSTALLER diff --git a/frogpilot/third_party/pydub-0.25.1.dist-info/LICENSE b/starpilot/third_party/pydub-0.25.1.dist-info/LICENSE similarity index 100% rename from frogpilot/third_party/pydub-0.25.1.dist-info/LICENSE rename to starpilot/third_party/pydub-0.25.1.dist-info/LICENSE diff --git a/frogpilot/third_party/pydub-0.25.1.dist-info/METADATA b/starpilot/third_party/pydub-0.25.1.dist-info/METADATA similarity index 100% rename from frogpilot/third_party/pydub-0.25.1.dist-info/METADATA rename to starpilot/third_party/pydub-0.25.1.dist-info/METADATA diff --git a/frogpilot/third_party/pydub-0.25.1.dist-info/RECORD b/starpilot/third_party/pydub-0.25.1.dist-info/RECORD similarity index 100% rename from frogpilot/third_party/pydub-0.25.1.dist-info/RECORD rename to starpilot/third_party/pydub-0.25.1.dist-info/RECORD diff --git a/frogpilot/third_party/pydub-0.25.1.dist-info/REQUESTED b/starpilot/third_party/pydub-0.25.1.dist-info/REQUESTED similarity index 100% rename from frogpilot/third_party/pydub-0.25.1.dist-info/REQUESTED rename to starpilot/third_party/pydub-0.25.1.dist-info/REQUESTED diff --git a/frogpilot/third_party/pydub-0.25.1.dist-info/WHEEL b/starpilot/third_party/pydub-0.25.1.dist-info/WHEEL similarity index 100% rename from frogpilot/third_party/pydub-0.25.1.dist-info/WHEEL rename to starpilot/third_party/pydub-0.25.1.dist-info/WHEEL diff --git a/frogpilot/third_party/pydub-0.25.1.dist-info/top_level.txt b/starpilot/third_party/pydub-0.25.1.dist-info/top_level.txt similarity index 100% rename from frogpilot/third_party/pydub-0.25.1.dist-info/top_level.txt rename to starpilot/third_party/pydub-0.25.1.dist-info/top_level.txt diff --git a/frogpilot/third_party/pydub/__init__.py b/starpilot/third_party/pydub/__init__.py similarity index 100% rename from frogpilot/third_party/pydub/__init__.py rename to starpilot/third_party/pydub/__init__.py diff --git a/frogpilot/third_party/pydub/audio_segment.py b/starpilot/third_party/pydub/audio_segment.py similarity index 100% rename from frogpilot/third_party/pydub/audio_segment.py rename to starpilot/third_party/pydub/audio_segment.py diff --git a/frogpilot/third_party/pydub/effects.py b/starpilot/third_party/pydub/effects.py similarity index 100% rename from frogpilot/third_party/pydub/effects.py rename to starpilot/third_party/pydub/effects.py diff --git a/frogpilot/third_party/pydub/exceptions.py b/starpilot/third_party/pydub/exceptions.py similarity index 100% rename from frogpilot/third_party/pydub/exceptions.py rename to starpilot/third_party/pydub/exceptions.py diff --git a/frogpilot/third_party/pydub/generators.py b/starpilot/third_party/pydub/generators.py similarity index 100% rename from frogpilot/third_party/pydub/generators.py rename to starpilot/third_party/pydub/generators.py diff --git a/frogpilot/third_party/pydub/logging_utils.py b/starpilot/third_party/pydub/logging_utils.py similarity index 100% rename from frogpilot/third_party/pydub/logging_utils.py rename to starpilot/third_party/pydub/logging_utils.py diff --git a/frogpilot/third_party/pydub/playback.py b/starpilot/third_party/pydub/playback.py similarity index 100% rename from frogpilot/third_party/pydub/playback.py rename to starpilot/third_party/pydub/playback.py diff --git a/frogpilot/third_party/pydub/pyaudioop.py b/starpilot/third_party/pydub/pyaudioop.py similarity index 100% rename from frogpilot/third_party/pydub/pyaudioop.py rename to starpilot/third_party/pydub/pyaudioop.py diff --git a/frogpilot/third_party/pydub/scipy_effects.py b/starpilot/third_party/pydub/scipy_effects.py similarity index 100% rename from frogpilot/third_party/pydub/scipy_effects.py rename to starpilot/third_party/pydub/scipy_effects.py diff --git a/frogpilot/third_party/pydub/silence.py b/starpilot/third_party/pydub/silence.py similarity index 100% rename from frogpilot/third_party/pydub/silence.py rename to starpilot/third_party/pydub/silence.py diff --git a/frogpilot/third_party/pydub/utils.py b/starpilot/third_party/pydub/utils.py similarity index 100% rename from frogpilot/third_party/pydub/utils.py rename to starpilot/third_party/pydub/utils.py diff --git a/frogpilot/third_party/reactivex/__init__.py b/starpilot/third_party/reactivex/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/__init__.py rename to starpilot/third_party/reactivex/__init__.py diff --git a/frogpilot/third_party/reactivex/_version.py b/starpilot/third_party/reactivex/_version.py similarity index 100% rename from frogpilot/third_party/reactivex/_version.py rename to starpilot/third_party/reactivex/_version.py diff --git a/frogpilot/third_party/reactivex/abc/__init__.py b/starpilot/third_party/reactivex/abc/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/abc/__init__.py rename to starpilot/third_party/reactivex/abc/__init__.py diff --git a/frogpilot/third_party/reactivex/abc/disposable.py b/starpilot/third_party/reactivex/abc/disposable.py similarity index 100% rename from frogpilot/third_party/reactivex/abc/disposable.py rename to starpilot/third_party/reactivex/abc/disposable.py diff --git a/frogpilot/third_party/reactivex/abc/observable.py b/starpilot/third_party/reactivex/abc/observable.py similarity index 100% rename from frogpilot/third_party/reactivex/abc/observable.py rename to starpilot/third_party/reactivex/abc/observable.py diff --git a/frogpilot/third_party/reactivex/abc/observer.py b/starpilot/third_party/reactivex/abc/observer.py similarity index 100% rename from frogpilot/third_party/reactivex/abc/observer.py rename to starpilot/third_party/reactivex/abc/observer.py diff --git a/frogpilot/third_party/reactivex/abc/periodicscheduler.py b/starpilot/third_party/reactivex/abc/periodicscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/abc/periodicscheduler.py rename to starpilot/third_party/reactivex/abc/periodicscheduler.py diff --git a/frogpilot/third_party/reactivex/abc/scheduler.py b/starpilot/third_party/reactivex/abc/scheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/abc/scheduler.py rename to starpilot/third_party/reactivex/abc/scheduler.py diff --git a/frogpilot/third_party/reactivex/abc/startable.py b/starpilot/third_party/reactivex/abc/startable.py similarity index 100% rename from frogpilot/third_party/reactivex/abc/startable.py rename to starpilot/third_party/reactivex/abc/startable.py diff --git a/frogpilot/third_party/reactivex/abc/subject.py b/starpilot/third_party/reactivex/abc/subject.py similarity index 100% rename from frogpilot/third_party/reactivex/abc/subject.py rename to starpilot/third_party/reactivex/abc/subject.py diff --git a/frogpilot/third_party/reactivex/disposable/__init__.py b/starpilot/third_party/reactivex/disposable/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/disposable/__init__.py rename to starpilot/third_party/reactivex/disposable/__init__.py diff --git a/frogpilot/third_party/reactivex/disposable/booleandisposable.py b/starpilot/third_party/reactivex/disposable/booleandisposable.py similarity index 100% rename from frogpilot/third_party/reactivex/disposable/booleandisposable.py rename to starpilot/third_party/reactivex/disposable/booleandisposable.py diff --git a/frogpilot/third_party/reactivex/disposable/compositedisposable.py b/starpilot/third_party/reactivex/disposable/compositedisposable.py similarity index 100% rename from frogpilot/third_party/reactivex/disposable/compositedisposable.py rename to starpilot/third_party/reactivex/disposable/compositedisposable.py diff --git a/frogpilot/third_party/reactivex/disposable/disposable.py b/starpilot/third_party/reactivex/disposable/disposable.py similarity index 100% rename from frogpilot/third_party/reactivex/disposable/disposable.py rename to starpilot/third_party/reactivex/disposable/disposable.py diff --git a/frogpilot/third_party/reactivex/disposable/multipleassignmentdisposable.py b/starpilot/third_party/reactivex/disposable/multipleassignmentdisposable.py similarity index 100% rename from frogpilot/third_party/reactivex/disposable/multipleassignmentdisposable.py rename to starpilot/third_party/reactivex/disposable/multipleassignmentdisposable.py diff --git a/frogpilot/third_party/reactivex/disposable/refcountdisposable.py b/starpilot/third_party/reactivex/disposable/refcountdisposable.py similarity index 100% rename from frogpilot/third_party/reactivex/disposable/refcountdisposable.py rename to starpilot/third_party/reactivex/disposable/refcountdisposable.py diff --git a/frogpilot/third_party/reactivex/disposable/scheduleddisposable.py b/starpilot/third_party/reactivex/disposable/scheduleddisposable.py similarity index 100% rename from frogpilot/third_party/reactivex/disposable/scheduleddisposable.py rename to starpilot/third_party/reactivex/disposable/scheduleddisposable.py diff --git a/frogpilot/third_party/reactivex/disposable/serialdisposable.py b/starpilot/third_party/reactivex/disposable/serialdisposable.py similarity index 100% rename from frogpilot/third_party/reactivex/disposable/serialdisposable.py rename to starpilot/third_party/reactivex/disposable/serialdisposable.py diff --git a/frogpilot/third_party/reactivex/disposable/singleassignmentdisposable.py b/starpilot/third_party/reactivex/disposable/singleassignmentdisposable.py similarity index 100% rename from frogpilot/third_party/reactivex/disposable/singleassignmentdisposable.py rename to starpilot/third_party/reactivex/disposable/singleassignmentdisposable.py diff --git a/frogpilot/third_party/reactivex/internal/__init__.py b/starpilot/third_party/reactivex/internal/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/internal/__init__.py rename to starpilot/third_party/reactivex/internal/__init__.py diff --git a/frogpilot/third_party/reactivex/internal/basic.py b/starpilot/third_party/reactivex/internal/basic.py similarity index 100% rename from frogpilot/third_party/reactivex/internal/basic.py rename to starpilot/third_party/reactivex/internal/basic.py diff --git a/frogpilot/third_party/reactivex/internal/concurrency.py b/starpilot/third_party/reactivex/internal/concurrency.py similarity index 100% rename from frogpilot/third_party/reactivex/internal/concurrency.py rename to starpilot/third_party/reactivex/internal/concurrency.py diff --git a/frogpilot/third_party/reactivex/internal/constants.py b/starpilot/third_party/reactivex/internal/constants.py similarity index 100% rename from frogpilot/third_party/reactivex/internal/constants.py rename to starpilot/third_party/reactivex/internal/constants.py diff --git a/frogpilot/third_party/reactivex/internal/exceptions.py b/starpilot/third_party/reactivex/internal/exceptions.py similarity index 100% rename from frogpilot/third_party/reactivex/internal/exceptions.py rename to starpilot/third_party/reactivex/internal/exceptions.py diff --git a/frogpilot/third_party/reactivex/internal/priorityqueue.py b/starpilot/third_party/reactivex/internal/priorityqueue.py similarity index 100% rename from frogpilot/third_party/reactivex/internal/priorityqueue.py rename to starpilot/third_party/reactivex/internal/priorityqueue.py diff --git a/frogpilot/third_party/reactivex/internal/utils.py b/starpilot/third_party/reactivex/internal/utils.py similarity index 100% rename from frogpilot/third_party/reactivex/internal/utils.py rename to starpilot/third_party/reactivex/internal/utils.py diff --git a/frogpilot/third_party/reactivex/notification.py b/starpilot/third_party/reactivex/notification.py similarity index 100% rename from frogpilot/third_party/reactivex/notification.py rename to starpilot/third_party/reactivex/notification.py diff --git a/frogpilot/third_party/reactivex/observable/__init__.py b/starpilot/third_party/reactivex/observable/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/__init__.py rename to starpilot/third_party/reactivex/observable/__init__.py diff --git a/frogpilot/third_party/reactivex/observable/amb.py b/starpilot/third_party/reactivex/observable/amb.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/amb.py rename to starpilot/third_party/reactivex/observable/amb.py diff --git a/frogpilot/third_party/reactivex/observable/case.py b/starpilot/third_party/reactivex/observable/case.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/case.py rename to starpilot/third_party/reactivex/observable/case.py diff --git a/frogpilot/third_party/reactivex/observable/catch.py b/starpilot/third_party/reactivex/observable/catch.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/catch.py rename to starpilot/third_party/reactivex/observable/catch.py diff --git a/frogpilot/third_party/reactivex/observable/combinelatest.py b/starpilot/third_party/reactivex/observable/combinelatest.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/combinelatest.py rename to starpilot/third_party/reactivex/observable/combinelatest.py diff --git a/frogpilot/third_party/reactivex/observable/concat.py b/starpilot/third_party/reactivex/observable/concat.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/concat.py rename to starpilot/third_party/reactivex/observable/concat.py diff --git a/frogpilot/third_party/reactivex/observable/connectableobservable.py b/starpilot/third_party/reactivex/observable/connectableobservable.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/connectableobservable.py rename to starpilot/third_party/reactivex/observable/connectableobservable.py diff --git a/frogpilot/third_party/reactivex/observable/defer.py b/starpilot/third_party/reactivex/observable/defer.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/defer.py rename to starpilot/third_party/reactivex/observable/defer.py diff --git a/frogpilot/third_party/reactivex/observable/empty.py b/starpilot/third_party/reactivex/observable/empty.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/empty.py rename to starpilot/third_party/reactivex/observable/empty.py diff --git a/frogpilot/third_party/reactivex/observable/forkjoin.py b/starpilot/third_party/reactivex/observable/forkjoin.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/forkjoin.py rename to starpilot/third_party/reactivex/observable/forkjoin.py diff --git a/frogpilot/third_party/reactivex/observable/fromcallback.py b/starpilot/third_party/reactivex/observable/fromcallback.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/fromcallback.py rename to starpilot/third_party/reactivex/observable/fromcallback.py diff --git a/frogpilot/third_party/reactivex/observable/fromfuture.py b/starpilot/third_party/reactivex/observable/fromfuture.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/fromfuture.py rename to starpilot/third_party/reactivex/observable/fromfuture.py diff --git a/frogpilot/third_party/reactivex/observable/fromiterable.py b/starpilot/third_party/reactivex/observable/fromiterable.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/fromiterable.py rename to starpilot/third_party/reactivex/observable/fromiterable.py diff --git a/frogpilot/third_party/reactivex/observable/generate.py b/starpilot/third_party/reactivex/observable/generate.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/generate.py rename to starpilot/third_party/reactivex/observable/generate.py diff --git a/frogpilot/third_party/reactivex/observable/generatewithrelativetime.py b/starpilot/third_party/reactivex/observable/generatewithrelativetime.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/generatewithrelativetime.py rename to starpilot/third_party/reactivex/observable/generatewithrelativetime.py diff --git a/frogpilot/third_party/reactivex/observable/groupedobservable.py b/starpilot/third_party/reactivex/observable/groupedobservable.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/groupedobservable.py rename to starpilot/third_party/reactivex/observable/groupedobservable.py diff --git a/frogpilot/third_party/reactivex/observable/ifthen.py b/starpilot/third_party/reactivex/observable/ifthen.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/ifthen.py rename to starpilot/third_party/reactivex/observable/ifthen.py diff --git a/frogpilot/third_party/reactivex/observable/interval.py b/starpilot/third_party/reactivex/observable/interval.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/interval.py rename to starpilot/third_party/reactivex/observable/interval.py diff --git a/frogpilot/third_party/reactivex/observable/marbles.py b/starpilot/third_party/reactivex/observable/marbles.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/marbles.py rename to starpilot/third_party/reactivex/observable/marbles.py diff --git a/frogpilot/third_party/reactivex/observable/merge.py b/starpilot/third_party/reactivex/observable/merge.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/merge.py rename to starpilot/third_party/reactivex/observable/merge.py diff --git a/frogpilot/third_party/reactivex/observable/never.py b/starpilot/third_party/reactivex/observable/never.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/never.py rename to starpilot/third_party/reactivex/observable/never.py diff --git a/frogpilot/third_party/reactivex/observable/observable.py b/starpilot/third_party/reactivex/observable/observable.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/observable.py rename to starpilot/third_party/reactivex/observable/observable.py diff --git a/frogpilot/third_party/reactivex/observable/onerrorresumenext.py b/starpilot/third_party/reactivex/observable/onerrorresumenext.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/onerrorresumenext.py rename to starpilot/third_party/reactivex/observable/onerrorresumenext.py diff --git a/frogpilot/third_party/reactivex/observable/range.py b/starpilot/third_party/reactivex/observable/range.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/range.py rename to starpilot/third_party/reactivex/observable/range.py diff --git a/frogpilot/third_party/reactivex/observable/repeat.py b/starpilot/third_party/reactivex/observable/repeat.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/repeat.py rename to starpilot/third_party/reactivex/observable/repeat.py diff --git a/frogpilot/third_party/reactivex/observable/returnvalue.py b/starpilot/third_party/reactivex/observable/returnvalue.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/returnvalue.py rename to starpilot/third_party/reactivex/observable/returnvalue.py diff --git a/frogpilot/third_party/reactivex/observable/start.py b/starpilot/third_party/reactivex/observable/start.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/start.py rename to starpilot/third_party/reactivex/observable/start.py diff --git a/frogpilot/third_party/reactivex/observable/startasync.py b/starpilot/third_party/reactivex/observable/startasync.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/startasync.py rename to starpilot/third_party/reactivex/observable/startasync.py diff --git a/frogpilot/third_party/reactivex/observable/throw.py b/starpilot/third_party/reactivex/observable/throw.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/throw.py rename to starpilot/third_party/reactivex/observable/throw.py diff --git a/frogpilot/third_party/reactivex/observable/timer.py b/starpilot/third_party/reactivex/observable/timer.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/timer.py rename to starpilot/third_party/reactivex/observable/timer.py diff --git a/frogpilot/third_party/reactivex/observable/toasync.py b/starpilot/third_party/reactivex/observable/toasync.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/toasync.py rename to starpilot/third_party/reactivex/observable/toasync.py diff --git a/frogpilot/third_party/reactivex/observable/using.py b/starpilot/third_party/reactivex/observable/using.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/using.py rename to starpilot/third_party/reactivex/observable/using.py diff --git a/frogpilot/third_party/reactivex/observable/withlatestfrom.py b/starpilot/third_party/reactivex/observable/withlatestfrom.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/withlatestfrom.py rename to starpilot/third_party/reactivex/observable/withlatestfrom.py diff --git a/frogpilot/third_party/reactivex/observable/zip.py b/starpilot/third_party/reactivex/observable/zip.py similarity index 100% rename from frogpilot/third_party/reactivex/observable/zip.py rename to starpilot/third_party/reactivex/observable/zip.py diff --git a/frogpilot/third_party/reactivex/observer/__init__.py b/starpilot/third_party/reactivex/observer/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/observer/__init__.py rename to starpilot/third_party/reactivex/observer/__init__.py diff --git a/frogpilot/third_party/reactivex/observer/autodetachobserver.py b/starpilot/third_party/reactivex/observer/autodetachobserver.py similarity index 100% rename from frogpilot/third_party/reactivex/observer/autodetachobserver.py rename to starpilot/third_party/reactivex/observer/autodetachobserver.py diff --git a/frogpilot/third_party/reactivex/observer/observeonobserver.py b/starpilot/third_party/reactivex/observer/observeonobserver.py similarity index 100% rename from frogpilot/third_party/reactivex/observer/observeonobserver.py rename to starpilot/third_party/reactivex/observer/observeonobserver.py diff --git a/frogpilot/third_party/reactivex/observer/observer.py b/starpilot/third_party/reactivex/observer/observer.py similarity index 100% rename from frogpilot/third_party/reactivex/observer/observer.py rename to starpilot/third_party/reactivex/observer/observer.py diff --git a/frogpilot/third_party/reactivex/observer/scheduledobserver.py b/starpilot/third_party/reactivex/observer/scheduledobserver.py similarity index 100% rename from frogpilot/third_party/reactivex/observer/scheduledobserver.py rename to starpilot/third_party/reactivex/observer/scheduledobserver.py diff --git a/frogpilot/third_party/reactivex/operators/__init__.py b/starpilot/third_party/reactivex/operators/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/__init__.py rename to starpilot/third_party/reactivex/operators/__init__.py diff --git a/frogpilot/third_party/reactivex/operators/_all.py b/starpilot/third_party/reactivex/operators/_all.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_all.py rename to starpilot/third_party/reactivex/operators/_all.py diff --git a/frogpilot/third_party/reactivex/operators/_amb.py b/starpilot/third_party/reactivex/operators/_amb.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_amb.py rename to starpilot/third_party/reactivex/operators/_amb.py diff --git a/frogpilot/third_party/reactivex/operators/_asobservable.py b/starpilot/third_party/reactivex/operators/_asobservable.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_asobservable.py rename to starpilot/third_party/reactivex/operators/_asobservable.py diff --git a/frogpilot/third_party/reactivex/operators/_average.py b/starpilot/third_party/reactivex/operators/_average.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_average.py rename to starpilot/third_party/reactivex/operators/_average.py diff --git a/frogpilot/third_party/reactivex/operators/_buffer.py b/starpilot/third_party/reactivex/operators/_buffer.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_buffer.py rename to starpilot/third_party/reactivex/operators/_buffer.py diff --git a/frogpilot/third_party/reactivex/operators/_bufferwithtime.py b/starpilot/third_party/reactivex/operators/_bufferwithtime.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_bufferwithtime.py rename to starpilot/third_party/reactivex/operators/_bufferwithtime.py diff --git a/frogpilot/third_party/reactivex/operators/_bufferwithtimeorcount.py b/starpilot/third_party/reactivex/operators/_bufferwithtimeorcount.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_bufferwithtimeorcount.py rename to starpilot/third_party/reactivex/operators/_bufferwithtimeorcount.py diff --git a/frogpilot/third_party/reactivex/operators/_catch.py b/starpilot/third_party/reactivex/operators/_catch.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_catch.py rename to starpilot/third_party/reactivex/operators/_catch.py diff --git a/frogpilot/third_party/reactivex/operators/_combinelatest.py b/starpilot/third_party/reactivex/operators/_combinelatest.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_combinelatest.py rename to starpilot/third_party/reactivex/operators/_combinelatest.py diff --git a/frogpilot/third_party/reactivex/operators/_concat.py b/starpilot/third_party/reactivex/operators/_concat.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_concat.py rename to starpilot/third_party/reactivex/operators/_concat.py diff --git a/frogpilot/third_party/reactivex/operators/_contains.py b/starpilot/third_party/reactivex/operators/_contains.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_contains.py rename to starpilot/third_party/reactivex/operators/_contains.py diff --git a/frogpilot/third_party/reactivex/operators/_count.py b/starpilot/third_party/reactivex/operators/_count.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_count.py rename to starpilot/third_party/reactivex/operators/_count.py diff --git a/frogpilot/third_party/reactivex/operators/_debounce.py b/starpilot/third_party/reactivex/operators/_debounce.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_debounce.py rename to starpilot/third_party/reactivex/operators/_debounce.py diff --git a/frogpilot/third_party/reactivex/operators/_defaultifempty.py b/starpilot/third_party/reactivex/operators/_defaultifempty.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_defaultifempty.py rename to starpilot/third_party/reactivex/operators/_defaultifempty.py diff --git a/frogpilot/third_party/reactivex/operators/_delay.py b/starpilot/third_party/reactivex/operators/_delay.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_delay.py rename to starpilot/third_party/reactivex/operators/_delay.py diff --git a/frogpilot/third_party/reactivex/operators/_delaysubscription.py b/starpilot/third_party/reactivex/operators/_delaysubscription.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_delaysubscription.py rename to starpilot/third_party/reactivex/operators/_delaysubscription.py diff --git a/frogpilot/third_party/reactivex/operators/_delaywithmapper.py b/starpilot/third_party/reactivex/operators/_delaywithmapper.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_delaywithmapper.py rename to starpilot/third_party/reactivex/operators/_delaywithmapper.py diff --git a/frogpilot/third_party/reactivex/operators/_dematerialize.py b/starpilot/third_party/reactivex/operators/_dematerialize.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_dematerialize.py rename to starpilot/third_party/reactivex/operators/_dematerialize.py diff --git a/frogpilot/third_party/reactivex/operators/_distinct.py b/starpilot/third_party/reactivex/operators/_distinct.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_distinct.py rename to starpilot/third_party/reactivex/operators/_distinct.py diff --git a/frogpilot/third_party/reactivex/operators/_distinctuntilchanged.py b/starpilot/third_party/reactivex/operators/_distinctuntilchanged.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_distinctuntilchanged.py rename to starpilot/third_party/reactivex/operators/_distinctuntilchanged.py diff --git a/frogpilot/third_party/reactivex/operators/_do.py b/starpilot/third_party/reactivex/operators/_do.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_do.py rename to starpilot/third_party/reactivex/operators/_do.py diff --git a/frogpilot/third_party/reactivex/operators/_dowhile.py b/starpilot/third_party/reactivex/operators/_dowhile.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_dowhile.py rename to starpilot/third_party/reactivex/operators/_dowhile.py diff --git a/frogpilot/third_party/reactivex/operators/_elementatordefault.py b/starpilot/third_party/reactivex/operators/_elementatordefault.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_elementatordefault.py rename to starpilot/third_party/reactivex/operators/_elementatordefault.py diff --git a/frogpilot/third_party/reactivex/operators/_exclusive.py b/starpilot/third_party/reactivex/operators/_exclusive.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_exclusive.py rename to starpilot/third_party/reactivex/operators/_exclusive.py diff --git a/frogpilot/third_party/reactivex/operators/_expand.py b/starpilot/third_party/reactivex/operators/_expand.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_expand.py rename to starpilot/third_party/reactivex/operators/_expand.py diff --git a/frogpilot/third_party/reactivex/operators/_filter.py b/starpilot/third_party/reactivex/operators/_filter.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_filter.py rename to starpilot/third_party/reactivex/operators/_filter.py diff --git a/frogpilot/third_party/reactivex/operators/_finallyaction.py b/starpilot/third_party/reactivex/operators/_finallyaction.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_finallyaction.py rename to starpilot/third_party/reactivex/operators/_finallyaction.py diff --git a/frogpilot/third_party/reactivex/operators/_find.py b/starpilot/third_party/reactivex/operators/_find.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_find.py rename to starpilot/third_party/reactivex/operators/_find.py diff --git a/frogpilot/third_party/reactivex/operators/_first.py b/starpilot/third_party/reactivex/operators/_first.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_first.py rename to starpilot/third_party/reactivex/operators/_first.py diff --git a/frogpilot/third_party/reactivex/operators/_firstordefault.py b/starpilot/third_party/reactivex/operators/_firstordefault.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_firstordefault.py rename to starpilot/third_party/reactivex/operators/_firstordefault.py diff --git a/frogpilot/third_party/reactivex/operators/_flatmap.py b/starpilot/third_party/reactivex/operators/_flatmap.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_flatmap.py rename to starpilot/third_party/reactivex/operators/_flatmap.py diff --git a/frogpilot/third_party/reactivex/operators/_forkjoin.py b/starpilot/third_party/reactivex/operators/_forkjoin.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_forkjoin.py rename to starpilot/third_party/reactivex/operators/_forkjoin.py diff --git a/frogpilot/third_party/reactivex/operators/_groupby.py b/starpilot/third_party/reactivex/operators/_groupby.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_groupby.py rename to starpilot/third_party/reactivex/operators/_groupby.py diff --git a/frogpilot/third_party/reactivex/operators/_groupbyuntil.py b/starpilot/third_party/reactivex/operators/_groupbyuntil.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_groupbyuntil.py rename to starpilot/third_party/reactivex/operators/_groupbyuntil.py diff --git a/frogpilot/third_party/reactivex/operators/_groupjoin.py b/starpilot/third_party/reactivex/operators/_groupjoin.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_groupjoin.py rename to starpilot/third_party/reactivex/operators/_groupjoin.py diff --git a/frogpilot/third_party/reactivex/operators/_ignoreelements.py b/starpilot/third_party/reactivex/operators/_ignoreelements.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_ignoreelements.py rename to starpilot/third_party/reactivex/operators/_ignoreelements.py diff --git a/frogpilot/third_party/reactivex/operators/_isempty.py b/starpilot/third_party/reactivex/operators/_isempty.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_isempty.py rename to starpilot/third_party/reactivex/operators/_isempty.py diff --git a/frogpilot/third_party/reactivex/operators/_join.py b/starpilot/third_party/reactivex/operators/_join.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_join.py rename to starpilot/third_party/reactivex/operators/_join.py diff --git a/frogpilot/third_party/reactivex/operators/_last.py b/starpilot/third_party/reactivex/operators/_last.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_last.py rename to starpilot/third_party/reactivex/operators/_last.py diff --git a/frogpilot/third_party/reactivex/operators/_lastordefault.py b/starpilot/third_party/reactivex/operators/_lastordefault.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_lastordefault.py rename to starpilot/third_party/reactivex/operators/_lastordefault.py diff --git a/frogpilot/third_party/reactivex/operators/_map.py b/starpilot/third_party/reactivex/operators/_map.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_map.py rename to starpilot/third_party/reactivex/operators/_map.py diff --git a/frogpilot/third_party/reactivex/operators/_materialize.py b/starpilot/third_party/reactivex/operators/_materialize.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_materialize.py rename to starpilot/third_party/reactivex/operators/_materialize.py diff --git a/frogpilot/third_party/reactivex/operators/_max.py b/starpilot/third_party/reactivex/operators/_max.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_max.py rename to starpilot/third_party/reactivex/operators/_max.py diff --git a/frogpilot/third_party/reactivex/operators/_maxby.py b/starpilot/third_party/reactivex/operators/_maxby.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_maxby.py rename to starpilot/third_party/reactivex/operators/_maxby.py diff --git a/frogpilot/third_party/reactivex/operators/_merge.py b/starpilot/third_party/reactivex/operators/_merge.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_merge.py rename to starpilot/third_party/reactivex/operators/_merge.py diff --git a/frogpilot/third_party/reactivex/operators/_min.py b/starpilot/third_party/reactivex/operators/_min.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_min.py rename to starpilot/third_party/reactivex/operators/_min.py diff --git a/frogpilot/third_party/reactivex/operators/_minby.py b/starpilot/third_party/reactivex/operators/_minby.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_minby.py rename to starpilot/third_party/reactivex/operators/_minby.py diff --git a/frogpilot/third_party/reactivex/operators/_multicast.py b/starpilot/third_party/reactivex/operators/_multicast.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_multicast.py rename to starpilot/third_party/reactivex/operators/_multicast.py diff --git a/frogpilot/third_party/reactivex/operators/_observeon.py b/starpilot/third_party/reactivex/operators/_observeon.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_observeon.py rename to starpilot/third_party/reactivex/operators/_observeon.py diff --git a/frogpilot/third_party/reactivex/operators/_onerrorresumenext.py b/starpilot/third_party/reactivex/operators/_onerrorresumenext.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_onerrorresumenext.py rename to starpilot/third_party/reactivex/operators/_onerrorresumenext.py diff --git a/frogpilot/third_party/reactivex/operators/_pairwise.py b/starpilot/third_party/reactivex/operators/_pairwise.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_pairwise.py rename to starpilot/third_party/reactivex/operators/_pairwise.py diff --git a/frogpilot/third_party/reactivex/operators/_partition.py b/starpilot/third_party/reactivex/operators/_partition.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_partition.py rename to starpilot/third_party/reactivex/operators/_partition.py diff --git a/frogpilot/third_party/reactivex/operators/_pluck.py b/starpilot/third_party/reactivex/operators/_pluck.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_pluck.py rename to starpilot/third_party/reactivex/operators/_pluck.py diff --git a/frogpilot/third_party/reactivex/operators/_publish.py b/starpilot/third_party/reactivex/operators/_publish.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_publish.py rename to starpilot/third_party/reactivex/operators/_publish.py diff --git a/frogpilot/third_party/reactivex/operators/_publishvalue.py b/starpilot/third_party/reactivex/operators/_publishvalue.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_publishvalue.py rename to starpilot/third_party/reactivex/operators/_publishvalue.py diff --git a/frogpilot/third_party/reactivex/operators/_reduce.py b/starpilot/third_party/reactivex/operators/_reduce.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_reduce.py rename to starpilot/third_party/reactivex/operators/_reduce.py diff --git a/frogpilot/third_party/reactivex/operators/_repeat.py b/starpilot/third_party/reactivex/operators/_repeat.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_repeat.py rename to starpilot/third_party/reactivex/operators/_repeat.py diff --git a/frogpilot/third_party/reactivex/operators/_replay.py b/starpilot/third_party/reactivex/operators/_replay.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_replay.py rename to starpilot/third_party/reactivex/operators/_replay.py diff --git a/frogpilot/third_party/reactivex/operators/_retry.py b/starpilot/third_party/reactivex/operators/_retry.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_retry.py rename to starpilot/third_party/reactivex/operators/_retry.py diff --git a/frogpilot/third_party/reactivex/operators/_sample.py b/starpilot/third_party/reactivex/operators/_sample.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_sample.py rename to starpilot/third_party/reactivex/operators/_sample.py diff --git a/frogpilot/third_party/reactivex/operators/_scan.py b/starpilot/third_party/reactivex/operators/_scan.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_scan.py rename to starpilot/third_party/reactivex/operators/_scan.py diff --git a/frogpilot/third_party/reactivex/operators/_sequenceequal.py b/starpilot/third_party/reactivex/operators/_sequenceequal.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_sequenceequal.py rename to starpilot/third_party/reactivex/operators/_sequenceequal.py diff --git a/frogpilot/third_party/reactivex/operators/_single.py b/starpilot/third_party/reactivex/operators/_single.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_single.py rename to starpilot/third_party/reactivex/operators/_single.py diff --git a/frogpilot/third_party/reactivex/operators/_singleordefault.py b/starpilot/third_party/reactivex/operators/_singleordefault.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_singleordefault.py rename to starpilot/third_party/reactivex/operators/_singleordefault.py diff --git a/frogpilot/third_party/reactivex/operators/_skip.py b/starpilot/third_party/reactivex/operators/_skip.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_skip.py rename to starpilot/third_party/reactivex/operators/_skip.py diff --git a/frogpilot/third_party/reactivex/operators/_skiplast.py b/starpilot/third_party/reactivex/operators/_skiplast.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_skiplast.py rename to starpilot/third_party/reactivex/operators/_skiplast.py diff --git a/frogpilot/third_party/reactivex/operators/_skiplastwithtime.py b/starpilot/third_party/reactivex/operators/_skiplastwithtime.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_skiplastwithtime.py rename to starpilot/third_party/reactivex/operators/_skiplastwithtime.py diff --git a/frogpilot/third_party/reactivex/operators/_skipuntil.py b/starpilot/third_party/reactivex/operators/_skipuntil.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_skipuntil.py rename to starpilot/third_party/reactivex/operators/_skipuntil.py diff --git a/frogpilot/third_party/reactivex/operators/_skipuntilwithtime.py b/starpilot/third_party/reactivex/operators/_skipuntilwithtime.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_skipuntilwithtime.py rename to starpilot/third_party/reactivex/operators/_skipuntilwithtime.py diff --git a/frogpilot/third_party/reactivex/operators/_skipwhile.py b/starpilot/third_party/reactivex/operators/_skipwhile.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_skipwhile.py rename to starpilot/third_party/reactivex/operators/_skipwhile.py diff --git a/frogpilot/third_party/reactivex/operators/_skipwithtime.py b/starpilot/third_party/reactivex/operators/_skipwithtime.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_skipwithtime.py rename to starpilot/third_party/reactivex/operators/_skipwithtime.py diff --git a/frogpilot/third_party/reactivex/operators/_slice.py b/starpilot/third_party/reactivex/operators/_slice.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_slice.py rename to starpilot/third_party/reactivex/operators/_slice.py diff --git a/frogpilot/third_party/reactivex/operators/_some.py b/starpilot/third_party/reactivex/operators/_some.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_some.py rename to starpilot/third_party/reactivex/operators/_some.py diff --git a/frogpilot/third_party/reactivex/operators/_startswith.py b/starpilot/third_party/reactivex/operators/_startswith.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_startswith.py rename to starpilot/third_party/reactivex/operators/_startswith.py diff --git a/frogpilot/third_party/reactivex/operators/_subscribeon.py b/starpilot/third_party/reactivex/operators/_subscribeon.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_subscribeon.py rename to starpilot/third_party/reactivex/operators/_subscribeon.py diff --git a/frogpilot/third_party/reactivex/operators/_sum.py b/starpilot/third_party/reactivex/operators/_sum.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_sum.py rename to starpilot/third_party/reactivex/operators/_sum.py diff --git a/frogpilot/third_party/reactivex/operators/_switchlatest.py b/starpilot/third_party/reactivex/operators/_switchlatest.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_switchlatest.py rename to starpilot/third_party/reactivex/operators/_switchlatest.py diff --git a/frogpilot/third_party/reactivex/operators/_take.py b/starpilot/third_party/reactivex/operators/_take.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_take.py rename to starpilot/third_party/reactivex/operators/_take.py diff --git a/frogpilot/third_party/reactivex/operators/_takelast.py b/starpilot/third_party/reactivex/operators/_takelast.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_takelast.py rename to starpilot/third_party/reactivex/operators/_takelast.py diff --git a/frogpilot/third_party/reactivex/operators/_takelastbuffer.py b/starpilot/third_party/reactivex/operators/_takelastbuffer.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_takelastbuffer.py rename to starpilot/third_party/reactivex/operators/_takelastbuffer.py diff --git a/frogpilot/third_party/reactivex/operators/_takelastwithtime.py b/starpilot/third_party/reactivex/operators/_takelastwithtime.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_takelastwithtime.py rename to starpilot/third_party/reactivex/operators/_takelastwithtime.py diff --git a/frogpilot/third_party/reactivex/operators/_takeuntil.py b/starpilot/third_party/reactivex/operators/_takeuntil.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_takeuntil.py rename to starpilot/third_party/reactivex/operators/_takeuntil.py diff --git a/frogpilot/third_party/reactivex/operators/_takeuntilwithtime.py b/starpilot/third_party/reactivex/operators/_takeuntilwithtime.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_takeuntilwithtime.py rename to starpilot/third_party/reactivex/operators/_takeuntilwithtime.py diff --git a/frogpilot/third_party/reactivex/operators/_takewhile.py b/starpilot/third_party/reactivex/operators/_takewhile.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_takewhile.py rename to starpilot/third_party/reactivex/operators/_takewhile.py diff --git a/frogpilot/third_party/reactivex/operators/_takewithtime.py b/starpilot/third_party/reactivex/operators/_takewithtime.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_takewithtime.py rename to starpilot/third_party/reactivex/operators/_takewithtime.py diff --git a/frogpilot/third_party/reactivex/operators/_throttlefirst.py b/starpilot/third_party/reactivex/operators/_throttlefirst.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_throttlefirst.py rename to starpilot/third_party/reactivex/operators/_throttlefirst.py diff --git a/frogpilot/third_party/reactivex/operators/_timeinterval.py b/starpilot/third_party/reactivex/operators/_timeinterval.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_timeinterval.py rename to starpilot/third_party/reactivex/operators/_timeinterval.py diff --git a/frogpilot/third_party/reactivex/operators/_timeout.py b/starpilot/third_party/reactivex/operators/_timeout.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_timeout.py rename to starpilot/third_party/reactivex/operators/_timeout.py diff --git a/frogpilot/third_party/reactivex/operators/_timeoutwithmapper.py b/starpilot/third_party/reactivex/operators/_timeoutwithmapper.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_timeoutwithmapper.py rename to starpilot/third_party/reactivex/operators/_timeoutwithmapper.py diff --git a/frogpilot/third_party/reactivex/operators/_timestamp.py b/starpilot/third_party/reactivex/operators/_timestamp.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_timestamp.py rename to starpilot/third_party/reactivex/operators/_timestamp.py diff --git a/frogpilot/third_party/reactivex/operators/_todict.py b/starpilot/third_party/reactivex/operators/_todict.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_todict.py rename to starpilot/third_party/reactivex/operators/_todict.py diff --git a/frogpilot/third_party/reactivex/operators/_tofuture.py b/starpilot/third_party/reactivex/operators/_tofuture.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_tofuture.py rename to starpilot/third_party/reactivex/operators/_tofuture.py diff --git a/frogpilot/third_party/reactivex/operators/_toiterable.py b/starpilot/third_party/reactivex/operators/_toiterable.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_toiterable.py rename to starpilot/third_party/reactivex/operators/_toiterable.py diff --git a/frogpilot/third_party/reactivex/operators/_tomarbles.py b/starpilot/third_party/reactivex/operators/_tomarbles.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_tomarbles.py rename to starpilot/third_party/reactivex/operators/_tomarbles.py diff --git a/frogpilot/third_party/reactivex/operators/_toset.py b/starpilot/third_party/reactivex/operators/_toset.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_toset.py rename to starpilot/third_party/reactivex/operators/_toset.py diff --git a/frogpilot/third_party/reactivex/operators/_whiledo.py b/starpilot/third_party/reactivex/operators/_whiledo.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_whiledo.py rename to starpilot/third_party/reactivex/operators/_whiledo.py diff --git a/frogpilot/third_party/reactivex/operators/_window.py b/starpilot/third_party/reactivex/operators/_window.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_window.py rename to starpilot/third_party/reactivex/operators/_window.py diff --git a/frogpilot/third_party/reactivex/operators/_windowwithcount.py b/starpilot/third_party/reactivex/operators/_windowwithcount.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_windowwithcount.py rename to starpilot/third_party/reactivex/operators/_windowwithcount.py diff --git a/frogpilot/third_party/reactivex/operators/_windowwithtime.py b/starpilot/third_party/reactivex/operators/_windowwithtime.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_windowwithtime.py rename to starpilot/third_party/reactivex/operators/_windowwithtime.py diff --git a/frogpilot/third_party/reactivex/operators/_windowwithtimeorcount.py b/starpilot/third_party/reactivex/operators/_windowwithtimeorcount.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_windowwithtimeorcount.py rename to starpilot/third_party/reactivex/operators/_windowwithtimeorcount.py diff --git a/frogpilot/third_party/reactivex/operators/_withlatestfrom.py b/starpilot/third_party/reactivex/operators/_withlatestfrom.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_withlatestfrom.py rename to starpilot/third_party/reactivex/operators/_withlatestfrom.py diff --git a/frogpilot/third_party/reactivex/operators/_zip.py b/starpilot/third_party/reactivex/operators/_zip.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/_zip.py rename to starpilot/third_party/reactivex/operators/_zip.py diff --git a/frogpilot/third_party/reactivex/operators/connectable/__init__.py b/starpilot/third_party/reactivex/operators/connectable/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/connectable/__init__.py rename to starpilot/third_party/reactivex/operators/connectable/__init__.py diff --git a/frogpilot/third_party/reactivex/operators/connectable/_refcount.py b/starpilot/third_party/reactivex/operators/connectable/_refcount.py similarity index 100% rename from frogpilot/third_party/reactivex/operators/connectable/_refcount.py rename to starpilot/third_party/reactivex/operators/connectable/_refcount.py diff --git a/frogpilot/third_party/reactivex/pipe.py b/starpilot/third_party/reactivex/pipe.py similarity index 100% rename from frogpilot/third_party/reactivex/pipe.py rename to starpilot/third_party/reactivex/pipe.py diff --git a/frogpilot/third_party/reactivex/py.typed b/starpilot/third_party/reactivex/py.typed similarity index 100% rename from frogpilot/third_party/reactivex/py.typed rename to starpilot/third_party/reactivex/py.typed diff --git a/frogpilot/third_party/reactivex/run.py b/starpilot/third_party/reactivex/run.py similarity index 100% rename from frogpilot/third_party/reactivex/run.py rename to starpilot/third_party/reactivex/run.py diff --git a/frogpilot/third_party/reactivex/scheduler/__init__.py b/starpilot/third_party/reactivex/scheduler/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/__init__.py rename to starpilot/third_party/reactivex/scheduler/__init__.py diff --git a/frogpilot/third_party/reactivex/scheduler/catchscheduler.py b/starpilot/third_party/reactivex/scheduler/catchscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/catchscheduler.py rename to starpilot/third_party/reactivex/scheduler/catchscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/currentthreadscheduler.py b/starpilot/third_party/reactivex/scheduler/currentthreadscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/currentthreadscheduler.py rename to starpilot/third_party/reactivex/scheduler/currentthreadscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/eventloop/__init__.py b/starpilot/third_party/reactivex/scheduler/eventloop/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/eventloop/__init__.py rename to starpilot/third_party/reactivex/scheduler/eventloop/__init__.py diff --git a/frogpilot/third_party/reactivex/scheduler/eventloop/asyncioscheduler.py b/starpilot/third_party/reactivex/scheduler/eventloop/asyncioscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/eventloop/asyncioscheduler.py rename to starpilot/third_party/reactivex/scheduler/eventloop/asyncioscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/eventloop/asynciothreadsafescheduler.py b/starpilot/third_party/reactivex/scheduler/eventloop/asynciothreadsafescheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/eventloop/asynciothreadsafescheduler.py rename to starpilot/third_party/reactivex/scheduler/eventloop/asynciothreadsafescheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/eventloop/eventletscheduler.py b/starpilot/third_party/reactivex/scheduler/eventloop/eventletscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/eventloop/eventletscheduler.py rename to starpilot/third_party/reactivex/scheduler/eventloop/eventletscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/eventloop/geventscheduler.py b/starpilot/third_party/reactivex/scheduler/eventloop/geventscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/eventloop/geventscheduler.py rename to starpilot/third_party/reactivex/scheduler/eventloop/geventscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/eventloop/ioloopscheduler.py b/starpilot/third_party/reactivex/scheduler/eventloop/ioloopscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/eventloop/ioloopscheduler.py rename to starpilot/third_party/reactivex/scheduler/eventloop/ioloopscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/eventloop/twistedscheduler.py b/starpilot/third_party/reactivex/scheduler/eventloop/twistedscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/eventloop/twistedscheduler.py rename to starpilot/third_party/reactivex/scheduler/eventloop/twistedscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/eventloopscheduler.py b/starpilot/third_party/reactivex/scheduler/eventloopscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/eventloopscheduler.py rename to starpilot/third_party/reactivex/scheduler/eventloopscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/historicalscheduler.py b/starpilot/third_party/reactivex/scheduler/historicalscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/historicalscheduler.py rename to starpilot/third_party/reactivex/scheduler/historicalscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/immediatescheduler.py b/starpilot/third_party/reactivex/scheduler/immediatescheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/immediatescheduler.py rename to starpilot/third_party/reactivex/scheduler/immediatescheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/mainloop/__init__.py b/starpilot/third_party/reactivex/scheduler/mainloop/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/mainloop/__init__.py rename to starpilot/third_party/reactivex/scheduler/mainloop/__init__.py diff --git a/frogpilot/third_party/reactivex/scheduler/mainloop/gtkscheduler.py b/starpilot/third_party/reactivex/scheduler/mainloop/gtkscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/mainloop/gtkscheduler.py rename to starpilot/third_party/reactivex/scheduler/mainloop/gtkscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/mainloop/pygamescheduler.py b/starpilot/third_party/reactivex/scheduler/mainloop/pygamescheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/mainloop/pygamescheduler.py rename to starpilot/third_party/reactivex/scheduler/mainloop/pygamescheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/mainloop/qtscheduler.py b/starpilot/third_party/reactivex/scheduler/mainloop/qtscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/mainloop/qtscheduler.py rename to starpilot/third_party/reactivex/scheduler/mainloop/qtscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/mainloop/tkinterscheduler.py b/starpilot/third_party/reactivex/scheduler/mainloop/tkinterscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/mainloop/tkinterscheduler.py rename to starpilot/third_party/reactivex/scheduler/mainloop/tkinterscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/mainloop/wxscheduler.py b/starpilot/third_party/reactivex/scheduler/mainloop/wxscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/mainloop/wxscheduler.py rename to starpilot/third_party/reactivex/scheduler/mainloop/wxscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/newthreadscheduler.py b/starpilot/third_party/reactivex/scheduler/newthreadscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/newthreadscheduler.py rename to starpilot/third_party/reactivex/scheduler/newthreadscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/periodicscheduler.py b/starpilot/third_party/reactivex/scheduler/periodicscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/periodicscheduler.py rename to starpilot/third_party/reactivex/scheduler/periodicscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/scheduleditem.py b/starpilot/third_party/reactivex/scheduler/scheduleditem.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/scheduleditem.py rename to starpilot/third_party/reactivex/scheduler/scheduleditem.py diff --git a/frogpilot/third_party/reactivex/scheduler/scheduler.py b/starpilot/third_party/reactivex/scheduler/scheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/scheduler.py rename to starpilot/third_party/reactivex/scheduler/scheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/threadpoolscheduler.py b/starpilot/third_party/reactivex/scheduler/threadpoolscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/threadpoolscheduler.py rename to starpilot/third_party/reactivex/scheduler/threadpoolscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/timeoutscheduler.py b/starpilot/third_party/reactivex/scheduler/timeoutscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/timeoutscheduler.py rename to starpilot/third_party/reactivex/scheduler/timeoutscheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/trampoline.py b/starpilot/third_party/reactivex/scheduler/trampoline.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/trampoline.py rename to starpilot/third_party/reactivex/scheduler/trampoline.py diff --git a/frogpilot/third_party/reactivex/scheduler/trampolinescheduler.py b/starpilot/third_party/reactivex/scheduler/trampolinescheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/trampolinescheduler.py rename to starpilot/third_party/reactivex/scheduler/trampolinescheduler.py diff --git a/frogpilot/third_party/reactivex/scheduler/virtualtimescheduler.py b/starpilot/third_party/reactivex/scheduler/virtualtimescheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/scheduler/virtualtimescheduler.py rename to starpilot/third_party/reactivex/scheduler/virtualtimescheduler.py diff --git a/frogpilot/third_party/reactivex/subject/__init__.py b/starpilot/third_party/reactivex/subject/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/subject/__init__.py rename to starpilot/third_party/reactivex/subject/__init__.py diff --git a/frogpilot/third_party/reactivex/subject/asyncsubject.py b/starpilot/third_party/reactivex/subject/asyncsubject.py similarity index 100% rename from frogpilot/third_party/reactivex/subject/asyncsubject.py rename to starpilot/third_party/reactivex/subject/asyncsubject.py diff --git a/frogpilot/third_party/reactivex/subject/behaviorsubject.py b/starpilot/third_party/reactivex/subject/behaviorsubject.py similarity index 100% rename from frogpilot/third_party/reactivex/subject/behaviorsubject.py rename to starpilot/third_party/reactivex/subject/behaviorsubject.py diff --git a/frogpilot/third_party/reactivex/subject/innersubscription.py b/starpilot/third_party/reactivex/subject/innersubscription.py similarity index 100% rename from frogpilot/third_party/reactivex/subject/innersubscription.py rename to starpilot/third_party/reactivex/subject/innersubscription.py diff --git a/frogpilot/third_party/reactivex/subject/replaysubject.py b/starpilot/third_party/reactivex/subject/replaysubject.py similarity index 100% rename from frogpilot/third_party/reactivex/subject/replaysubject.py rename to starpilot/third_party/reactivex/subject/replaysubject.py diff --git a/frogpilot/third_party/reactivex/subject/subject.py b/starpilot/third_party/reactivex/subject/subject.py similarity index 100% rename from frogpilot/third_party/reactivex/subject/subject.py rename to starpilot/third_party/reactivex/subject/subject.py diff --git a/frogpilot/third_party/reactivex/testing/__init__.py b/starpilot/third_party/reactivex/testing/__init__.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/__init__.py rename to starpilot/third_party/reactivex/testing/__init__.py diff --git a/frogpilot/third_party/reactivex/testing/coldobservable.py b/starpilot/third_party/reactivex/testing/coldobservable.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/coldobservable.py rename to starpilot/third_party/reactivex/testing/coldobservable.py diff --git a/frogpilot/third_party/reactivex/testing/hotobservable.py b/starpilot/third_party/reactivex/testing/hotobservable.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/hotobservable.py rename to starpilot/third_party/reactivex/testing/hotobservable.py diff --git a/frogpilot/third_party/reactivex/testing/marbles.py b/starpilot/third_party/reactivex/testing/marbles.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/marbles.py rename to starpilot/third_party/reactivex/testing/marbles.py diff --git a/frogpilot/third_party/reactivex/testing/mockdisposable.py b/starpilot/third_party/reactivex/testing/mockdisposable.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/mockdisposable.py rename to starpilot/third_party/reactivex/testing/mockdisposable.py diff --git a/frogpilot/third_party/reactivex/testing/mockobserver.py b/starpilot/third_party/reactivex/testing/mockobserver.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/mockobserver.py rename to starpilot/third_party/reactivex/testing/mockobserver.py diff --git a/frogpilot/third_party/reactivex/testing/reactivetest.py b/starpilot/third_party/reactivex/testing/reactivetest.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/reactivetest.py rename to starpilot/third_party/reactivex/testing/reactivetest.py diff --git a/frogpilot/third_party/reactivex/testing/recorded.py b/starpilot/third_party/reactivex/testing/recorded.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/recorded.py rename to starpilot/third_party/reactivex/testing/recorded.py diff --git a/frogpilot/third_party/reactivex/testing/subscription.py b/starpilot/third_party/reactivex/testing/subscription.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/subscription.py rename to starpilot/third_party/reactivex/testing/subscription.py diff --git a/frogpilot/third_party/reactivex/testing/testscheduler.py b/starpilot/third_party/reactivex/testing/testscheduler.py similarity index 100% rename from frogpilot/third_party/reactivex/testing/testscheduler.py rename to starpilot/third_party/reactivex/testing/testscheduler.py diff --git a/frogpilot/third_party/reactivex/typing.py b/starpilot/third_party/reactivex/typing.py similarity index 100% rename from frogpilot/third_party/reactivex/typing.py rename to starpilot/third_party/reactivex/typing.py diff --git a/frogpilot/third_party/six.py b/starpilot/third_party/six.py similarity index 100% rename from frogpilot/third_party/six.py rename to starpilot/third_party/six.py diff --git a/frogpilot/third_party/timezonefinder/__init__.py b/starpilot/third_party/timezonefinder/__init__.py similarity index 100% rename from frogpilot/third_party/timezonefinder/__init__.py rename to starpilot/third_party/timezonefinder/__init__.py diff --git a/frogpilot/third_party/timezonefinder/_numba_replacements.py b/starpilot/third_party/timezonefinder/_numba_replacements.py similarity index 100% rename from frogpilot/third_party/timezonefinder/_numba_replacements.py rename to starpilot/third_party/timezonefinder/_numba_replacements.py diff --git a/frogpilot/third_party/timezonefinder/configs.py b/starpilot/third_party/timezonefinder/configs.py similarity index 100% rename from frogpilot/third_party/timezonefinder/configs.py rename to starpilot/third_party/timezonefinder/configs.py diff --git a/frogpilot/third_party/timezonefinder/coord_accessors.py b/starpilot/third_party/timezonefinder/coord_accessors.py similarity index 100% rename from frogpilot/third_party/timezonefinder/coord_accessors.py rename to starpilot/third_party/timezonefinder/coord_accessors.py diff --git a/frogpilot/third_party/timezonefinder/data/boundaries/coordinates.fbs b/starpilot/third_party/timezonefinder/data/boundaries/coordinates.fbs similarity index 100% rename from frogpilot/third_party/timezonefinder/data/boundaries/coordinates.fbs rename to starpilot/third_party/timezonefinder/data/boundaries/coordinates.fbs diff --git a/frogpilot/third_party/timezonefinder/data/boundaries/xmax.npy b/starpilot/third_party/timezonefinder/data/boundaries/xmax.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/boundaries/xmax.npy rename to starpilot/third_party/timezonefinder/data/boundaries/xmax.npy diff --git a/frogpilot/third_party/timezonefinder/data/boundaries/xmin.npy b/starpilot/third_party/timezonefinder/data/boundaries/xmin.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/boundaries/xmin.npy rename to starpilot/third_party/timezonefinder/data/boundaries/xmin.npy diff --git a/frogpilot/third_party/timezonefinder/data/boundaries/ymax.npy b/starpilot/third_party/timezonefinder/data/boundaries/ymax.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/boundaries/ymax.npy rename to starpilot/third_party/timezonefinder/data/boundaries/ymax.npy diff --git a/frogpilot/third_party/timezonefinder/data/boundaries/ymin.npy b/starpilot/third_party/timezonefinder/data/boundaries/ymin.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/boundaries/ymin.npy rename to starpilot/third_party/timezonefinder/data/boundaries/ymin.npy diff --git a/frogpilot/third_party/timezonefinder/data/hole_registry.json b/starpilot/third_party/timezonefinder/data/hole_registry.json similarity index 100% rename from frogpilot/third_party/timezonefinder/data/hole_registry.json rename to starpilot/third_party/timezonefinder/data/hole_registry.json diff --git a/frogpilot/third_party/timezonefinder/data/holes/coordinates.fbs b/starpilot/third_party/timezonefinder/data/holes/coordinates.fbs similarity index 100% rename from frogpilot/third_party/timezonefinder/data/holes/coordinates.fbs rename to starpilot/third_party/timezonefinder/data/holes/coordinates.fbs diff --git a/frogpilot/third_party/timezonefinder/data/holes/xmax.npy b/starpilot/third_party/timezonefinder/data/holes/xmax.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/holes/xmax.npy rename to starpilot/third_party/timezonefinder/data/holes/xmax.npy diff --git a/frogpilot/third_party/timezonefinder/data/holes/xmin.npy b/starpilot/third_party/timezonefinder/data/holes/xmin.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/holes/xmin.npy rename to starpilot/third_party/timezonefinder/data/holes/xmin.npy diff --git a/frogpilot/third_party/timezonefinder/data/holes/ymax.npy b/starpilot/third_party/timezonefinder/data/holes/ymax.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/holes/ymax.npy rename to starpilot/third_party/timezonefinder/data/holes/ymax.npy diff --git a/frogpilot/third_party/timezonefinder/data/holes/ymin.npy b/starpilot/third_party/timezonefinder/data/holes/ymin.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/holes/ymin.npy rename to starpilot/third_party/timezonefinder/data/holes/ymin.npy diff --git a/frogpilot/third_party/timezonefinder/data/hybrid_shortcuts_uint16.fbs b/starpilot/third_party/timezonefinder/data/hybrid_shortcuts_uint16.fbs similarity index 100% rename from frogpilot/third_party/timezonefinder/data/hybrid_shortcuts_uint16.fbs rename to starpilot/third_party/timezonefinder/data/hybrid_shortcuts_uint16.fbs diff --git a/frogpilot/third_party/timezonefinder/data/timezone_names.txt b/starpilot/third_party/timezonefinder/data/timezone_names.txt similarity index 100% rename from frogpilot/third_party/timezonefinder/data/timezone_names.txt rename to starpilot/third_party/timezonefinder/data/timezone_names.txt diff --git a/frogpilot/third_party/timezonefinder/data/zone_ids.npy b/starpilot/third_party/timezonefinder/data/zone_ids.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/zone_ids.npy rename to starpilot/third_party/timezonefinder/data/zone_ids.npy diff --git a/frogpilot/third_party/timezonefinder/data/zone_positions.npy b/starpilot/third_party/timezonefinder/data/zone_positions.npy similarity index 100% rename from frogpilot/third_party/timezonefinder/data/zone_positions.npy rename to starpilot/third_party/timezonefinder/data/zone_positions.npy diff --git a/frogpilot/third_party/timezonefinder/flatbuf/__init__.py b/starpilot/third_party/timezonefinder/flatbuf/__init__.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/__init__.py rename to starpilot/third_party/timezonefinder/flatbuf/__init__.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/__init__.py b/starpilot/third_party/timezonefinder/flatbuf/generated/__init__.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/__init__.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/__init__.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/polygons/Polygon.py b/starpilot/third_party/timezonefinder/flatbuf/generated/polygons/Polygon.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/polygons/Polygon.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/polygons/Polygon.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/polygons/PolygonCollection.py b/starpilot/third_party/timezonefinder/flatbuf/generated/polygons/PolygonCollection.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/polygons/PolygonCollection.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/polygons/PolygonCollection.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/polygons/__init__.py b/starpilot/third_party/timezonefinder/flatbuf/generated/polygons/__init__.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/polygons/__init__.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/polygons/__init__.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/HybridShortcutCollection.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/HybridShortcutCollection.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/HybridShortcutCollection.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/HybridShortcutCollection.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/HybridShortcutEntry.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/HybridShortcutEntry.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/HybridShortcutEntry.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/HybridShortcutEntry.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/PolygonList.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/PolygonList.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/PolygonList.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/PolygonList.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/ShortcutValue.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/ShortcutValue.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/ShortcutValue.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/ShortcutValue.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/UniqueZone.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/UniqueZone.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/UniqueZone.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/UniqueZone.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/__init__.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/__init__.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/__init__.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint16/__init__.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/HybridShortcutCollection.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/HybridShortcutCollection.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/HybridShortcutCollection.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/HybridShortcutCollection.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/HybridShortcutEntry.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/HybridShortcutEntry.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/HybridShortcutEntry.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/HybridShortcutEntry.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/PolygonList.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/PolygonList.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/PolygonList.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/PolygonList.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/ShortcutValue.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/ShortcutValue.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/ShortcutValue.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/ShortcutValue.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/UniqueZone.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/UniqueZone.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/UniqueZone.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/UniqueZone.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/__init__.py b/starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/__init__.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/__init__.py rename to starpilot/third_party/timezonefinder/flatbuf/generated/shortcuts_uint8/__init__.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/io/__init__.py b/starpilot/third_party/timezonefinder/flatbuf/io/__init__.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/io/__init__.py rename to starpilot/third_party/timezonefinder/flatbuf/io/__init__.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/io/hybrid_shortcuts.py b/starpilot/third_party/timezonefinder/flatbuf/io/hybrid_shortcuts.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/io/hybrid_shortcuts.py rename to starpilot/third_party/timezonefinder/flatbuf/io/hybrid_shortcuts.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/io/polygons.py b/starpilot/third_party/timezonefinder/flatbuf/io/polygons.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/io/polygons.py rename to starpilot/third_party/timezonefinder/flatbuf/io/polygons.py diff --git a/frogpilot/third_party/timezonefinder/flatbuf/schemas/__init__.py b/starpilot/third_party/timezonefinder/flatbuf/schemas/__init__.py similarity index 100% rename from frogpilot/third_party/timezonefinder/flatbuf/schemas/__init__.py rename to starpilot/third_party/timezonefinder/flatbuf/schemas/__init__.py diff --git a/frogpilot/third_party/timezonefinder/global_functions.py b/starpilot/third_party/timezonefinder/global_functions.py similarity index 100% rename from frogpilot/third_party/timezonefinder/global_functions.py rename to starpilot/third_party/timezonefinder/global_functions.py diff --git a/frogpilot/third_party/timezonefinder/np_binary_helpers.py b/starpilot/third_party/timezonefinder/np_binary_helpers.py similarity index 100% rename from frogpilot/third_party/timezonefinder/np_binary_helpers.py rename to starpilot/third_party/timezonefinder/np_binary_helpers.py diff --git a/frogpilot/third_party/timezonefinder/polygon_array.py b/starpilot/third_party/timezonefinder/polygon_array.py similarity index 100% rename from frogpilot/third_party/timezonefinder/polygon_array.py rename to starpilot/third_party/timezonefinder/polygon_array.py diff --git a/frogpilot/third_party/timezonefinder/timezonefinder.py b/starpilot/third_party/timezonefinder/timezonefinder.py similarity index 100% rename from frogpilot/third_party/timezonefinder/timezonefinder.py rename to starpilot/third_party/timezonefinder/timezonefinder.py diff --git a/frogpilot/third_party/timezonefinder/utils.py b/starpilot/third_party/timezonefinder/utils.py similarity index 100% rename from frogpilot/third_party/timezonefinder/utils.py rename to starpilot/third_party/timezonefinder/utils.py diff --git a/frogpilot/third_party/timezonefinder/utils_clang.py b/starpilot/third_party/timezonefinder/utils_clang.py similarity index 100% rename from frogpilot/third_party/timezonefinder/utils_clang.py rename to starpilot/third_party/timezonefinder/utils_clang.py diff --git a/frogpilot/third_party/timezonefinder/utils_numba.py b/starpilot/third_party/timezonefinder/utils_numba.py similarity index 100% rename from frogpilot/third_party/timezonefinder/utils_numba.py rename to starpilot/third_party/timezonefinder/utils_numba.py diff --git a/frogpilot/third_party/timezonefinder/zone_names.py b/starpilot/third_party/timezonefinder/zone_names.py similarity index 100% rename from frogpilot/third_party/timezonefinder/zone_names.py rename to starpilot/third_party/timezonefinder/zone_names.py diff --git a/frogpilot/third_party/typing_extensions.py b/starpilot/third_party/typing_extensions.py similarity index 100% rename from frogpilot/third_party/typing_extensions.py rename to starpilot/third_party/typing_extensions.py diff --git a/frogpilot/third_party/urllib3/__init__.py b/starpilot/third_party/urllib3/__init__.py similarity index 100% rename from frogpilot/third_party/urllib3/__init__.py rename to starpilot/third_party/urllib3/__init__.py diff --git a/frogpilot/third_party/urllib3/_base_connection.py b/starpilot/third_party/urllib3/_base_connection.py similarity index 100% rename from frogpilot/third_party/urllib3/_base_connection.py rename to starpilot/third_party/urllib3/_base_connection.py diff --git a/frogpilot/third_party/urllib3/_collections.py b/starpilot/third_party/urllib3/_collections.py similarity index 100% rename from frogpilot/third_party/urllib3/_collections.py rename to starpilot/third_party/urllib3/_collections.py diff --git a/frogpilot/third_party/urllib3/_request_methods.py b/starpilot/third_party/urllib3/_request_methods.py similarity index 100% rename from frogpilot/third_party/urllib3/_request_methods.py rename to starpilot/third_party/urllib3/_request_methods.py diff --git a/frogpilot/third_party/urllib3/_version.py b/starpilot/third_party/urllib3/_version.py similarity index 100% rename from frogpilot/third_party/urllib3/_version.py rename to starpilot/third_party/urllib3/_version.py diff --git a/frogpilot/third_party/urllib3/connection.py b/starpilot/third_party/urllib3/connection.py similarity index 100% rename from frogpilot/third_party/urllib3/connection.py rename to starpilot/third_party/urllib3/connection.py diff --git a/frogpilot/third_party/urllib3/connectionpool.py b/starpilot/third_party/urllib3/connectionpool.py similarity index 100% rename from frogpilot/third_party/urllib3/connectionpool.py rename to starpilot/third_party/urllib3/connectionpool.py diff --git a/frogpilot/third_party/urllib3/contrib/__init__.py b/starpilot/third_party/urllib3/contrib/__init__.py similarity index 100% rename from frogpilot/third_party/urllib3/contrib/__init__.py rename to starpilot/third_party/urllib3/contrib/__init__.py diff --git a/frogpilot/third_party/urllib3/contrib/emscripten/__init__.py b/starpilot/third_party/urllib3/contrib/emscripten/__init__.py similarity index 100% rename from frogpilot/third_party/urllib3/contrib/emscripten/__init__.py rename to starpilot/third_party/urllib3/contrib/emscripten/__init__.py diff --git a/frogpilot/third_party/urllib3/contrib/emscripten/connection.py b/starpilot/third_party/urllib3/contrib/emscripten/connection.py similarity index 100% rename from frogpilot/third_party/urllib3/contrib/emscripten/connection.py rename to starpilot/third_party/urllib3/contrib/emscripten/connection.py diff --git a/frogpilot/third_party/urllib3/contrib/emscripten/emscripten_fetch_worker.js b/starpilot/third_party/urllib3/contrib/emscripten/emscripten_fetch_worker.js similarity index 100% rename from frogpilot/third_party/urllib3/contrib/emscripten/emscripten_fetch_worker.js rename to starpilot/third_party/urllib3/contrib/emscripten/emscripten_fetch_worker.js diff --git a/frogpilot/third_party/urllib3/contrib/emscripten/fetch.py b/starpilot/third_party/urllib3/contrib/emscripten/fetch.py similarity index 100% rename from frogpilot/third_party/urllib3/contrib/emscripten/fetch.py rename to starpilot/third_party/urllib3/contrib/emscripten/fetch.py diff --git a/frogpilot/third_party/urllib3/contrib/emscripten/request.py b/starpilot/third_party/urllib3/contrib/emscripten/request.py similarity index 100% rename from frogpilot/third_party/urllib3/contrib/emscripten/request.py rename to starpilot/third_party/urllib3/contrib/emscripten/request.py diff --git a/frogpilot/third_party/urllib3/contrib/emscripten/response.py b/starpilot/third_party/urllib3/contrib/emscripten/response.py similarity index 100% rename from frogpilot/third_party/urllib3/contrib/emscripten/response.py rename to starpilot/third_party/urllib3/contrib/emscripten/response.py diff --git a/frogpilot/third_party/urllib3/contrib/pyopenssl.py b/starpilot/third_party/urllib3/contrib/pyopenssl.py similarity index 100% rename from frogpilot/third_party/urllib3/contrib/pyopenssl.py rename to starpilot/third_party/urllib3/contrib/pyopenssl.py diff --git a/frogpilot/third_party/urllib3/contrib/socks.py b/starpilot/third_party/urllib3/contrib/socks.py similarity index 100% rename from frogpilot/third_party/urllib3/contrib/socks.py rename to starpilot/third_party/urllib3/contrib/socks.py diff --git a/frogpilot/third_party/urllib3/exceptions.py b/starpilot/third_party/urllib3/exceptions.py similarity index 100% rename from frogpilot/third_party/urllib3/exceptions.py rename to starpilot/third_party/urllib3/exceptions.py diff --git a/frogpilot/third_party/urllib3/fields.py b/starpilot/third_party/urllib3/fields.py similarity index 100% rename from frogpilot/third_party/urllib3/fields.py rename to starpilot/third_party/urllib3/fields.py diff --git a/frogpilot/third_party/urllib3/filepost.py b/starpilot/third_party/urllib3/filepost.py similarity index 100% rename from frogpilot/third_party/urllib3/filepost.py rename to starpilot/third_party/urllib3/filepost.py diff --git a/frogpilot/third_party/urllib3/http2/__init__.py b/starpilot/third_party/urllib3/http2/__init__.py similarity index 100% rename from frogpilot/third_party/urllib3/http2/__init__.py rename to starpilot/third_party/urllib3/http2/__init__.py diff --git a/frogpilot/third_party/urllib3/http2/connection.py b/starpilot/third_party/urllib3/http2/connection.py similarity index 100% rename from frogpilot/third_party/urllib3/http2/connection.py rename to starpilot/third_party/urllib3/http2/connection.py diff --git a/frogpilot/third_party/urllib3/http2/probe.py b/starpilot/third_party/urllib3/http2/probe.py similarity index 100% rename from frogpilot/third_party/urllib3/http2/probe.py rename to starpilot/third_party/urllib3/http2/probe.py diff --git a/frogpilot/third_party/urllib3/poolmanager.py b/starpilot/third_party/urllib3/poolmanager.py similarity index 100% rename from frogpilot/third_party/urllib3/poolmanager.py rename to starpilot/third_party/urllib3/poolmanager.py diff --git a/frogpilot/third_party/urllib3/py.typed b/starpilot/third_party/urllib3/py.typed similarity index 100% rename from frogpilot/third_party/urllib3/py.typed rename to starpilot/third_party/urllib3/py.typed diff --git a/frogpilot/third_party/urllib3/response.py b/starpilot/third_party/urllib3/response.py similarity index 100% rename from frogpilot/third_party/urllib3/response.py rename to starpilot/third_party/urllib3/response.py diff --git a/frogpilot/third_party/urllib3/util/__init__.py b/starpilot/third_party/urllib3/util/__init__.py similarity index 100% rename from frogpilot/third_party/urllib3/util/__init__.py rename to starpilot/third_party/urllib3/util/__init__.py diff --git a/frogpilot/third_party/urllib3/util/connection.py b/starpilot/third_party/urllib3/util/connection.py similarity index 100% rename from frogpilot/third_party/urllib3/util/connection.py rename to starpilot/third_party/urllib3/util/connection.py diff --git a/frogpilot/third_party/urllib3/util/proxy.py b/starpilot/third_party/urllib3/util/proxy.py similarity index 100% rename from frogpilot/third_party/urllib3/util/proxy.py rename to starpilot/third_party/urllib3/util/proxy.py diff --git a/frogpilot/third_party/urllib3/util/request.py b/starpilot/third_party/urllib3/util/request.py similarity index 100% rename from frogpilot/third_party/urllib3/util/request.py rename to starpilot/third_party/urllib3/util/request.py diff --git a/frogpilot/third_party/urllib3/util/response.py b/starpilot/third_party/urllib3/util/response.py similarity index 100% rename from frogpilot/third_party/urllib3/util/response.py rename to starpilot/third_party/urllib3/util/response.py diff --git a/frogpilot/third_party/urllib3/util/retry.py b/starpilot/third_party/urllib3/util/retry.py similarity index 100% rename from frogpilot/third_party/urllib3/util/retry.py rename to starpilot/third_party/urllib3/util/retry.py diff --git a/frogpilot/third_party/urllib3/util/ssl_.py b/starpilot/third_party/urllib3/util/ssl_.py similarity index 100% rename from frogpilot/third_party/urllib3/util/ssl_.py rename to starpilot/third_party/urllib3/util/ssl_.py diff --git a/frogpilot/third_party/urllib3/util/ssl_match_hostname.py b/starpilot/third_party/urllib3/util/ssl_match_hostname.py similarity index 100% rename from frogpilot/third_party/urllib3/util/ssl_match_hostname.py rename to starpilot/third_party/urllib3/util/ssl_match_hostname.py diff --git a/frogpilot/third_party/urllib3/util/ssltransport.py b/starpilot/third_party/urllib3/util/ssltransport.py similarity index 100% rename from frogpilot/third_party/urllib3/util/ssltransport.py rename to starpilot/third_party/urllib3/util/ssltransport.py diff --git a/frogpilot/third_party/urllib3/util/timeout.py b/starpilot/third_party/urllib3/util/timeout.py similarity index 100% rename from frogpilot/third_party/urllib3/util/timeout.py rename to starpilot/third_party/urllib3/util/timeout.py diff --git a/frogpilot/third_party/urllib3/util/url.py b/starpilot/third_party/urllib3/util/url.py similarity index 100% rename from frogpilot/third_party/urllib3/util/url.py rename to starpilot/third_party/urllib3/util/url.py diff --git a/frogpilot/third_party/urllib3/util/util.py b/starpilot/third_party/urllib3/util/util.py similarity index 100% rename from frogpilot/third_party/urllib3/util/util.py rename to starpilot/third_party/urllib3/util/util.py diff --git a/frogpilot/third_party/urllib3/util/wait.py b/starpilot/third_party/urllib3/util/wait.py similarity index 100% rename from frogpilot/third_party/urllib3/util/wait.py rename to starpilot/third_party/urllib3/util/wait.py diff --git a/frogpilot/third_party/werkzeug-3.1.3.dist-info/INSTALLER b/starpilot/third_party/werkzeug-3.1.3.dist-info/INSTALLER similarity index 100% rename from frogpilot/third_party/werkzeug-3.1.3.dist-info/INSTALLER rename to starpilot/third_party/werkzeug-3.1.3.dist-info/INSTALLER diff --git a/frogpilot/third_party/werkzeug-3.1.3.dist-info/LICENSE.txt b/starpilot/third_party/werkzeug-3.1.3.dist-info/LICENSE.txt similarity index 100% rename from frogpilot/third_party/werkzeug-3.1.3.dist-info/LICENSE.txt rename to starpilot/third_party/werkzeug-3.1.3.dist-info/LICENSE.txt diff --git a/frogpilot/third_party/werkzeug-3.1.3.dist-info/METADATA b/starpilot/third_party/werkzeug-3.1.3.dist-info/METADATA similarity index 100% rename from frogpilot/third_party/werkzeug-3.1.3.dist-info/METADATA rename to starpilot/third_party/werkzeug-3.1.3.dist-info/METADATA diff --git a/frogpilot/third_party/werkzeug-3.1.3.dist-info/RECORD b/starpilot/third_party/werkzeug-3.1.3.dist-info/RECORD similarity index 100% rename from frogpilot/third_party/werkzeug-3.1.3.dist-info/RECORD rename to starpilot/third_party/werkzeug-3.1.3.dist-info/RECORD diff --git a/frogpilot/third_party/werkzeug-3.1.3.dist-info/REQUESTED b/starpilot/third_party/werkzeug-3.1.3.dist-info/REQUESTED similarity index 100% rename from frogpilot/third_party/werkzeug-3.1.3.dist-info/REQUESTED rename to starpilot/third_party/werkzeug-3.1.3.dist-info/REQUESTED diff --git a/frogpilot/third_party/werkzeug-3.1.3.dist-info/WHEEL b/starpilot/third_party/werkzeug-3.1.3.dist-info/WHEEL similarity index 100% rename from frogpilot/third_party/werkzeug-3.1.3.dist-info/WHEEL rename to starpilot/third_party/werkzeug-3.1.3.dist-info/WHEEL diff --git a/frogpilot/third_party/werkzeug/__init__.py b/starpilot/third_party/werkzeug/__init__.py similarity index 100% rename from frogpilot/third_party/werkzeug/__init__.py rename to starpilot/third_party/werkzeug/__init__.py diff --git a/frogpilot/third_party/werkzeug/_internal.py b/starpilot/third_party/werkzeug/_internal.py similarity index 100% rename from frogpilot/third_party/werkzeug/_internal.py rename to starpilot/third_party/werkzeug/_internal.py diff --git a/frogpilot/third_party/werkzeug/_reloader.py b/starpilot/third_party/werkzeug/_reloader.py similarity index 100% rename from frogpilot/third_party/werkzeug/_reloader.py rename to starpilot/third_party/werkzeug/_reloader.py diff --git a/frogpilot/third_party/werkzeug/datastructures/__init__.py b/starpilot/third_party/werkzeug/datastructures/__init__.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/__init__.py rename to starpilot/third_party/werkzeug/datastructures/__init__.py diff --git a/frogpilot/third_party/werkzeug/datastructures/accept.py b/starpilot/third_party/werkzeug/datastructures/accept.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/accept.py rename to starpilot/third_party/werkzeug/datastructures/accept.py diff --git a/frogpilot/third_party/werkzeug/datastructures/auth.py b/starpilot/third_party/werkzeug/datastructures/auth.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/auth.py rename to starpilot/third_party/werkzeug/datastructures/auth.py diff --git a/frogpilot/third_party/werkzeug/datastructures/cache_control.py b/starpilot/third_party/werkzeug/datastructures/cache_control.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/cache_control.py rename to starpilot/third_party/werkzeug/datastructures/cache_control.py diff --git a/frogpilot/third_party/werkzeug/datastructures/csp.py b/starpilot/third_party/werkzeug/datastructures/csp.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/csp.py rename to starpilot/third_party/werkzeug/datastructures/csp.py diff --git a/frogpilot/third_party/werkzeug/datastructures/etag.py b/starpilot/third_party/werkzeug/datastructures/etag.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/etag.py rename to starpilot/third_party/werkzeug/datastructures/etag.py diff --git a/frogpilot/third_party/werkzeug/datastructures/file_storage.py b/starpilot/third_party/werkzeug/datastructures/file_storage.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/file_storage.py rename to starpilot/third_party/werkzeug/datastructures/file_storage.py diff --git a/frogpilot/third_party/werkzeug/datastructures/headers.py b/starpilot/third_party/werkzeug/datastructures/headers.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/headers.py rename to starpilot/third_party/werkzeug/datastructures/headers.py diff --git a/frogpilot/third_party/werkzeug/datastructures/mixins.py b/starpilot/third_party/werkzeug/datastructures/mixins.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/mixins.py rename to starpilot/third_party/werkzeug/datastructures/mixins.py diff --git a/frogpilot/third_party/werkzeug/datastructures/range.py b/starpilot/third_party/werkzeug/datastructures/range.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/range.py rename to starpilot/third_party/werkzeug/datastructures/range.py diff --git a/frogpilot/third_party/werkzeug/datastructures/structures.py b/starpilot/third_party/werkzeug/datastructures/structures.py similarity index 100% rename from frogpilot/third_party/werkzeug/datastructures/structures.py rename to starpilot/third_party/werkzeug/datastructures/structures.py diff --git a/frogpilot/third_party/werkzeug/debug/__init__.py b/starpilot/third_party/werkzeug/debug/__init__.py similarity index 100% rename from frogpilot/third_party/werkzeug/debug/__init__.py rename to starpilot/third_party/werkzeug/debug/__init__.py diff --git a/frogpilot/third_party/werkzeug/debug/console.py b/starpilot/third_party/werkzeug/debug/console.py similarity index 100% rename from frogpilot/third_party/werkzeug/debug/console.py rename to starpilot/third_party/werkzeug/debug/console.py diff --git a/frogpilot/third_party/werkzeug/debug/repr.py b/starpilot/third_party/werkzeug/debug/repr.py similarity index 100% rename from frogpilot/third_party/werkzeug/debug/repr.py rename to starpilot/third_party/werkzeug/debug/repr.py diff --git a/frogpilot/third_party/werkzeug/debug/shared/ICON_LICENSE.md b/starpilot/third_party/werkzeug/debug/shared/ICON_LICENSE.md similarity index 100% rename from frogpilot/third_party/werkzeug/debug/shared/ICON_LICENSE.md rename to starpilot/third_party/werkzeug/debug/shared/ICON_LICENSE.md diff --git a/frogpilot/third_party/werkzeug/debug/shared/console.png b/starpilot/third_party/werkzeug/debug/shared/console.png similarity index 100% rename from frogpilot/third_party/werkzeug/debug/shared/console.png rename to starpilot/third_party/werkzeug/debug/shared/console.png diff --git a/frogpilot/third_party/werkzeug/debug/shared/debugger.js b/starpilot/third_party/werkzeug/debug/shared/debugger.js similarity index 100% rename from frogpilot/third_party/werkzeug/debug/shared/debugger.js rename to starpilot/third_party/werkzeug/debug/shared/debugger.js diff --git a/frogpilot/third_party/werkzeug/debug/shared/less.png b/starpilot/third_party/werkzeug/debug/shared/less.png similarity index 100% rename from frogpilot/third_party/werkzeug/debug/shared/less.png rename to starpilot/third_party/werkzeug/debug/shared/less.png diff --git a/frogpilot/third_party/werkzeug/debug/shared/more.png b/starpilot/third_party/werkzeug/debug/shared/more.png similarity index 100% rename from frogpilot/third_party/werkzeug/debug/shared/more.png rename to starpilot/third_party/werkzeug/debug/shared/more.png diff --git a/frogpilot/third_party/werkzeug/debug/shared/style.css b/starpilot/third_party/werkzeug/debug/shared/style.css similarity index 100% rename from frogpilot/third_party/werkzeug/debug/shared/style.css rename to starpilot/third_party/werkzeug/debug/shared/style.css diff --git a/frogpilot/third_party/werkzeug/debug/tbtools.py b/starpilot/third_party/werkzeug/debug/tbtools.py similarity index 100% rename from frogpilot/third_party/werkzeug/debug/tbtools.py rename to starpilot/third_party/werkzeug/debug/tbtools.py diff --git a/frogpilot/third_party/werkzeug/exceptions.py b/starpilot/third_party/werkzeug/exceptions.py similarity index 100% rename from frogpilot/third_party/werkzeug/exceptions.py rename to starpilot/third_party/werkzeug/exceptions.py diff --git a/frogpilot/third_party/werkzeug/formparser.py b/starpilot/third_party/werkzeug/formparser.py similarity index 100% rename from frogpilot/third_party/werkzeug/formparser.py rename to starpilot/third_party/werkzeug/formparser.py diff --git a/frogpilot/third_party/werkzeug/http.py b/starpilot/third_party/werkzeug/http.py similarity index 100% rename from frogpilot/third_party/werkzeug/http.py rename to starpilot/third_party/werkzeug/http.py diff --git a/frogpilot/third_party/werkzeug/local.py b/starpilot/third_party/werkzeug/local.py similarity index 100% rename from frogpilot/third_party/werkzeug/local.py rename to starpilot/third_party/werkzeug/local.py diff --git a/frogpilot/third_party/werkzeug/middleware/__init__.py b/starpilot/third_party/werkzeug/middleware/__init__.py similarity index 100% rename from frogpilot/third_party/werkzeug/middleware/__init__.py rename to starpilot/third_party/werkzeug/middleware/__init__.py diff --git a/frogpilot/third_party/werkzeug/middleware/dispatcher.py b/starpilot/third_party/werkzeug/middleware/dispatcher.py similarity index 100% rename from frogpilot/third_party/werkzeug/middleware/dispatcher.py rename to starpilot/third_party/werkzeug/middleware/dispatcher.py diff --git a/frogpilot/third_party/werkzeug/middleware/http_proxy.py b/starpilot/third_party/werkzeug/middleware/http_proxy.py similarity index 100% rename from frogpilot/third_party/werkzeug/middleware/http_proxy.py rename to starpilot/third_party/werkzeug/middleware/http_proxy.py diff --git a/frogpilot/third_party/werkzeug/middleware/lint.py b/starpilot/third_party/werkzeug/middleware/lint.py similarity index 100% rename from frogpilot/third_party/werkzeug/middleware/lint.py rename to starpilot/third_party/werkzeug/middleware/lint.py diff --git a/frogpilot/third_party/werkzeug/middleware/profiler.py b/starpilot/third_party/werkzeug/middleware/profiler.py similarity index 100% rename from frogpilot/third_party/werkzeug/middleware/profiler.py rename to starpilot/third_party/werkzeug/middleware/profiler.py diff --git a/frogpilot/third_party/werkzeug/middleware/proxy_fix.py b/starpilot/third_party/werkzeug/middleware/proxy_fix.py similarity index 100% rename from frogpilot/third_party/werkzeug/middleware/proxy_fix.py rename to starpilot/third_party/werkzeug/middleware/proxy_fix.py diff --git a/frogpilot/third_party/werkzeug/middleware/shared_data.py b/starpilot/third_party/werkzeug/middleware/shared_data.py similarity index 100% rename from frogpilot/third_party/werkzeug/middleware/shared_data.py rename to starpilot/third_party/werkzeug/middleware/shared_data.py diff --git a/frogpilot/third_party/werkzeug/py.typed b/starpilot/third_party/werkzeug/py.typed similarity index 100% rename from frogpilot/third_party/werkzeug/py.typed rename to starpilot/third_party/werkzeug/py.typed diff --git a/frogpilot/third_party/werkzeug/routing/__init__.py b/starpilot/third_party/werkzeug/routing/__init__.py similarity index 100% rename from frogpilot/third_party/werkzeug/routing/__init__.py rename to starpilot/third_party/werkzeug/routing/__init__.py diff --git a/frogpilot/third_party/werkzeug/routing/converters.py b/starpilot/third_party/werkzeug/routing/converters.py similarity index 100% rename from frogpilot/third_party/werkzeug/routing/converters.py rename to starpilot/third_party/werkzeug/routing/converters.py diff --git a/frogpilot/third_party/werkzeug/routing/exceptions.py b/starpilot/third_party/werkzeug/routing/exceptions.py similarity index 100% rename from frogpilot/third_party/werkzeug/routing/exceptions.py rename to starpilot/third_party/werkzeug/routing/exceptions.py diff --git a/frogpilot/third_party/werkzeug/routing/map.py b/starpilot/third_party/werkzeug/routing/map.py similarity index 100% rename from frogpilot/third_party/werkzeug/routing/map.py rename to starpilot/third_party/werkzeug/routing/map.py diff --git a/frogpilot/third_party/werkzeug/routing/matcher.py b/starpilot/third_party/werkzeug/routing/matcher.py similarity index 100% rename from frogpilot/third_party/werkzeug/routing/matcher.py rename to starpilot/third_party/werkzeug/routing/matcher.py diff --git a/frogpilot/third_party/werkzeug/routing/rules.py b/starpilot/third_party/werkzeug/routing/rules.py similarity index 100% rename from frogpilot/third_party/werkzeug/routing/rules.py rename to starpilot/third_party/werkzeug/routing/rules.py diff --git a/frogpilot/third_party/werkzeug/sansio/__init__.py b/starpilot/third_party/werkzeug/sansio/__init__.py similarity index 100% rename from frogpilot/third_party/werkzeug/sansio/__init__.py rename to starpilot/third_party/werkzeug/sansio/__init__.py diff --git a/frogpilot/third_party/werkzeug/sansio/http.py b/starpilot/third_party/werkzeug/sansio/http.py similarity index 100% rename from frogpilot/third_party/werkzeug/sansio/http.py rename to starpilot/third_party/werkzeug/sansio/http.py diff --git a/frogpilot/third_party/werkzeug/sansio/multipart.py b/starpilot/third_party/werkzeug/sansio/multipart.py similarity index 100% rename from frogpilot/third_party/werkzeug/sansio/multipart.py rename to starpilot/third_party/werkzeug/sansio/multipart.py diff --git a/frogpilot/third_party/werkzeug/sansio/request.py b/starpilot/third_party/werkzeug/sansio/request.py similarity index 100% rename from frogpilot/third_party/werkzeug/sansio/request.py rename to starpilot/third_party/werkzeug/sansio/request.py diff --git a/frogpilot/third_party/werkzeug/sansio/response.py b/starpilot/third_party/werkzeug/sansio/response.py similarity index 100% rename from frogpilot/third_party/werkzeug/sansio/response.py rename to starpilot/third_party/werkzeug/sansio/response.py diff --git a/frogpilot/third_party/werkzeug/sansio/utils.py b/starpilot/third_party/werkzeug/sansio/utils.py similarity index 100% rename from frogpilot/third_party/werkzeug/sansio/utils.py rename to starpilot/third_party/werkzeug/sansio/utils.py diff --git a/frogpilot/third_party/werkzeug/security.py b/starpilot/third_party/werkzeug/security.py similarity index 100% rename from frogpilot/third_party/werkzeug/security.py rename to starpilot/third_party/werkzeug/security.py diff --git a/frogpilot/third_party/werkzeug/serving.py b/starpilot/third_party/werkzeug/serving.py similarity index 100% rename from frogpilot/third_party/werkzeug/serving.py rename to starpilot/third_party/werkzeug/serving.py diff --git a/frogpilot/third_party/werkzeug/test.py b/starpilot/third_party/werkzeug/test.py similarity index 100% rename from frogpilot/third_party/werkzeug/test.py rename to starpilot/third_party/werkzeug/test.py diff --git a/frogpilot/third_party/werkzeug/testapp.py b/starpilot/third_party/werkzeug/testapp.py similarity index 100% rename from frogpilot/third_party/werkzeug/testapp.py rename to starpilot/third_party/werkzeug/testapp.py diff --git a/frogpilot/third_party/werkzeug/urls.py b/starpilot/third_party/werkzeug/urls.py similarity index 100% rename from frogpilot/third_party/werkzeug/urls.py rename to starpilot/third_party/werkzeug/urls.py diff --git a/frogpilot/third_party/werkzeug/user_agent.py b/starpilot/third_party/werkzeug/user_agent.py similarity index 100% rename from frogpilot/third_party/werkzeug/user_agent.py rename to starpilot/third_party/werkzeug/user_agent.py diff --git a/frogpilot/third_party/werkzeug/utils.py b/starpilot/third_party/werkzeug/utils.py similarity index 100% rename from frogpilot/third_party/werkzeug/utils.py rename to starpilot/third_party/werkzeug/utils.py diff --git a/frogpilot/third_party/werkzeug/wrappers/__init__.py b/starpilot/third_party/werkzeug/wrappers/__init__.py similarity index 100% rename from frogpilot/third_party/werkzeug/wrappers/__init__.py rename to starpilot/third_party/werkzeug/wrappers/__init__.py diff --git a/frogpilot/third_party/werkzeug/wrappers/request.py b/starpilot/third_party/werkzeug/wrappers/request.py similarity index 100% rename from frogpilot/third_party/werkzeug/wrappers/request.py rename to starpilot/third_party/werkzeug/wrappers/request.py diff --git a/frogpilot/third_party/werkzeug/wrappers/response.py b/starpilot/third_party/werkzeug/wrappers/response.py similarity index 100% rename from frogpilot/third_party/werkzeug/wrappers/response.py rename to starpilot/third_party/werkzeug/wrappers/response.py diff --git a/frogpilot/third_party/werkzeug/wsgi.py b/starpilot/third_party/werkzeug/wsgi.py similarity index 100% rename from frogpilot/third_party/werkzeug/wsgi.py rename to starpilot/third_party/werkzeug/wsgi.py diff --git a/frogpilot/tinygrad_modeld/__init__.py b/starpilot/tinygrad_modeld/__init__.py similarity index 100% rename from frogpilot/tinygrad_modeld/__init__.py rename to starpilot/tinygrad_modeld/__init__.py diff --git a/frogpilot/tinygrad_modeld/constants.py b/starpilot/tinygrad_modeld/constants.py similarity index 100% rename from frogpilot/tinygrad_modeld/constants.py rename to starpilot/tinygrad_modeld/constants.py diff --git a/frogpilot/tinygrad_modeld/dmonitoringmodeld.py b/starpilot/tinygrad_modeld/dmonitoringmodeld.py similarity index 99% rename from frogpilot/tinygrad_modeld/dmonitoringmodeld.py rename to starpilot/tinygrad_modeld/dmonitoringmodeld.py index 56b071db..3b767577 100644 --- a/frogpilot/tinygrad_modeld/dmonitoringmodeld.py +++ b/starpilot/tinygrad_modeld/dmonitoringmodeld.py @@ -20,7 +20,7 @@ from openpilot.selfdrive.modeld.parse_model_outputs import sigmoid, safe_exp from openpilot.selfdrive.modeld.models.commonmodel_pyx import CLContext, MonitoringModelFrame from openpilot.selfdrive.modeld.runners.tinygrad_helpers import qcom_tensor_from_opencl_address -PROCESS_NAME = "frogpilot.tinygrad_modeld.dmonitoringmodeld" +PROCESS_NAME = "starpilot.tinygrad_modeld.dmonitoringmodeld" SEND_RAW_PRED = os.getenv('SEND_RAW_PRED') MODEL_PKL_PATH = Path(__file__).resolve().parents[2] / "selfdrive/modeld/models/dmonitoring_model_tinygrad.pkl" METADATA_PATH = Path(__file__).parent / "models/dmonitoring_model_metadata.pkl" diff --git a/frogpilot/tinygrad_modeld/fill_model_msg.py b/starpilot/tinygrad_modeld/fill_model_msg.py similarity index 99% rename from frogpilot/tinygrad_modeld/fill_model_msg.py rename to starpilot/tinygrad_modeld/fill_model_msg.py index c09d9c33..9db7d54f 100644 --- a/frogpilot/tinygrad_modeld/fill_model_msg.py +++ b/starpilot/tinygrad_modeld/fill_model_msg.py @@ -2,7 +2,7 @@ import os import capnp import numpy as np from cereal import log -from openpilot.frogpilot.tinygrad_modeld.constants import ModelConstants, Plan, Meta +from openpilot.starpilot.tinygrad_modeld.constants import ModelConstants, Plan, Meta from openpilot.selfdrive.controls.lib.drive_helpers import get_curvature_from_plan SEND_RAW_PRED = os.getenv('SEND_RAW_PRED') diff --git a/frogpilot/tinygrad_modeld/get_model_metadata.py b/starpilot/tinygrad_modeld/get_model_metadata.py similarity index 100% rename from frogpilot/tinygrad_modeld/get_model_metadata.py rename to starpilot/tinygrad_modeld/get_model_metadata.py diff --git a/frogpilot/tinygrad_modeld/models/README.md b/starpilot/tinygrad_modeld/models/README.md similarity index 100% rename from frogpilot/tinygrad_modeld/models/README.md rename to starpilot/tinygrad_modeld/models/README.md diff --git a/frogpilot/tinygrad_modeld/models/__init__.py b/starpilot/tinygrad_modeld/models/__init__.py similarity index 100% rename from frogpilot/tinygrad_modeld/models/__init__.py rename to starpilot/tinygrad_modeld/models/__init__.py diff --git a/frogpilot/tinygrad_modeld/models/big_driving_policy.onnx b/starpilot/tinygrad_modeld/models/big_driving_policy.onnx similarity index 100% rename from frogpilot/tinygrad_modeld/models/big_driving_policy.onnx rename to starpilot/tinygrad_modeld/models/big_driving_policy.onnx diff --git a/frogpilot/tinygrad_modeld/models/big_driving_vision.onnx b/starpilot/tinygrad_modeld/models/big_driving_vision.onnx similarity index 100% rename from frogpilot/tinygrad_modeld/models/big_driving_vision.onnx rename to starpilot/tinygrad_modeld/models/big_driving_vision.onnx diff --git a/frogpilot/tinygrad_modeld/models/commonmodel.cc b/starpilot/tinygrad_modeld/models/commonmodel.cc similarity index 100% rename from frogpilot/tinygrad_modeld/models/commonmodel.cc rename to starpilot/tinygrad_modeld/models/commonmodel.cc diff --git a/frogpilot/tinygrad_modeld/models/commonmodel.h b/starpilot/tinygrad_modeld/models/commonmodel.h similarity index 100% rename from frogpilot/tinygrad_modeld/models/commonmodel.h rename to starpilot/tinygrad_modeld/models/commonmodel.h diff --git a/frogpilot/tinygrad_modeld/models/commonmodel.pxd b/starpilot/tinygrad_modeld/models/commonmodel.pxd similarity index 100% rename from frogpilot/tinygrad_modeld/models/commonmodel.pxd rename to starpilot/tinygrad_modeld/models/commonmodel.pxd diff --git a/frogpilot/tinygrad_modeld/models/commonmodel_pyx.cpp b/starpilot/tinygrad_modeld/models/commonmodel_pyx.cpp similarity index 100% rename from frogpilot/tinygrad_modeld/models/commonmodel_pyx.cpp rename to starpilot/tinygrad_modeld/models/commonmodel_pyx.cpp diff --git a/frogpilot/tinygrad_modeld/models/commonmodel_pyx.pxd b/starpilot/tinygrad_modeld/models/commonmodel_pyx.pxd similarity index 100% rename from frogpilot/tinygrad_modeld/models/commonmodel_pyx.pxd rename to starpilot/tinygrad_modeld/models/commonmodel_pyx.pxd diff --git a/frogpilot/tinygrad_modeld/models/commonmodel_pyx.pyx b/starpilot/tinygrad_modeld/models/commonmodel_pyx.pyx similarity index 100% rename from frogpilot/tinygrad_modeld/models/commonmodel_pyx.pyx rename to starpilot/tinygrad_modeld/models/commonmodel_pyx.pyx diff --git a/frogpilot/tinygrad_modeld/models/dm_warp_1344x760_tinygrad.pkl b/starpilot/tinygrad_modeld/models/dm_warp_1344x760_tinygrad.pkl similarity index 100% rename from frogpilot/tinygrad_modeld/models/dm_warp_1344x760_tinygrad.pkl rename to starpilot/tinygrad_modeld/models/dm_warp_1344x760_tinygrad.pkl diff --git a/frogpilot/tinygrad_modeld/models/dm_warp_1928x1208_tinygrad.pkl b/starpilot/tinygrad_modeld/models/dm_warp_1928x1208_tinygrad.pkl similarity index 100% rename from frogpilot/tinygrad_modeld/models/dm_warp_1928x1208_tinygrad.pkl rename to starpilot/tinygrad_modeld/models/dm_warp_1928x1208_tinygrad.pkl diff --git a/frogpilot/tinygrad_modeld/models/dmonitoring_model.onnx b/starpilot/tinygrad_modeld/models/dmonitoring_model.onnx similarity index 100% rename from frogpilot/tinygrad_modeld/models/dmonitoring_model.onnx rename to starpilot/tinygrad_modeld/models/dmonitoring_model.onnx diff --git a/frogpilot/tinygrad_modeld/models/dmonitoring_model_metadata.pkl b/starpilot/tinygrad_modeld/models/dmonitoring_model_metadata.pkl similarity index 100% rename from frogpilot/tinygrad_modeld/models/dmonitoring_model_metadata.pkl rename to starpilot/tinygrad_modeld/models/dmonitoring_model_metadata.pkl diff --git a/frogpilot/tinygrad_modeld/models/driving_policy.onnx b/starpilot/tinygrad_modeld/models/driving_policy.onnx similarity index 100% rename from frogpilot/tinygrad_modeld/models/driving_policy.onnx rename to starpilot/tinygrad_modeld/models/driving_policy.onnx diff --git a/frogpilot/tinygrad_modeld/models/driving_policy_metadata.pkl b/starpilot/tinygrad_modeld/models/driving_policy_metadata.pkl similarity index 100% rename from frogpilot/tinygrad_modeld/models/driving_policy_metadata.pkl rename to starpilot/tinygrad_modeld/models/driving_policy_metadata.pkl diff --git a/frogpilot/tinygrad_modeld/models/driving_vision.onnx b/starpilot/tinygrad_modeld/models/driving_vision.onnx similarity index 100% rename from frogpilot/tinygrad_modeld/models/driving_vision.onnx rename to starpilot/tinygrad_modeld/models/driving_vision.onnx diff --git a/frogpilot/tinygrad_modeld/models/driving_vision_metadata.pkl b/starpilot/tinygrad_modeld/models/driving_vision_metadata.pkl similarity index 100% rename from frogpilot/tinygrad_modeld/models/driving_vision_metadata.pkl rename to starpilot/tinygrad_modeld/models/driving_vision_metadata.pkl diff --git a/frogpilot/tinygrad_modeld/models/warp_1344x760_tinygrad.pkl b/starpilot/tinygrad_modeld/models/warp_1344x760_tinygrad.pkl similarity index 100% rename from frogpilot/tinygrad_modeld/models/warp_1344x760_tinygrad.pkl rename to starpilot/tinygrad_modeld/models/warp_1344x760_tinygrad.pkl diff --git a/frogpilot/tinygrad_modeld/models/warp_1928x1208_tinygrad.pkl b/starpilot/tinygrad_modeld/models/warp_1928x1208_tinygrad.pkl similarity index 100% rename from frogpilot/tinygrad_modeld/models/warp_1928x1208_tinygrad.pkl rename to starpilot/tinygrad_modeld/models/warp_1928x1208_tinygrad.pkl diff --git a/frogpilot/tinygrad_modeld/parse_model_outputs.py b/starpilot/tinygrad_modeld/parse_model_outputs.py similarity index 99% rename from frogpilot/tinygrad_modeld/parse_model_outputs.py rename to starpilot/tinygrad_modeld/parse_model_outputs.py index 15751d09..aa8054b5 100644 --- a/frogpilot/tinygrad_modeld/parse_model_outputs.py +++ b/starpilot/tinygrad_modeld/parse_model_outputs.py @@ -1,5 +1,5 @@ import numpy as np -from openpilot.frogpilot.tinygrad_modeld.constants import ModelConstants +from openpilot.starpilot.tinygrad_modeld.constants import ModelConstants def safe_exp(x, out=None): diff --git a/frogpilot/tinygrad_modeld/runners/tinygrad_helpers.py b/starpilot/tinygrad_modeld/runners/tinygrad_helpers.py similarity index 100% rename from frogpilot/tinygrad_modeld/runners/tinygrad_helpers.py rename to starpilot/tinygrad_modeld/runners/tinygrad_helpers.py diff --git a/frogpilot/tinygrad_modeld/tinygrad_modeld.py b/starpilot/tinygrad_modeld/tinygrad_modeld.py similarity index 96% rename from frogpilot/tinygrad_modeld/tinygrad_modeld.py rename to starpilot/tinygrad_modeld/tinygrad_modeld.py index 12a25776..6454a3e2 100755 --- a/frogpilot/tinygrad_modeld/tinygrad_modeld.py +++ b/starpilot/tinygrad_modeld/tinygrad_modeld.py @@ -23,18 +23,18 @@ from openpilot.system import sentry from opendbc.car.car_helpers import get_demo_car_params from openpilot.selfdrive.controls.lib.desire_helper import DesireHelper from openpilot.selfdrive.controls.lib.drive_helpers import get_accel_from_plan_tomb_raider, smooth_value -from openpilot.frogpilot.tinygrad_modeld.parse_model_outputs import Parser -from openpilot.frogpilot.tinygrad_modeld.fill_model_msg import fill_model_msg, fill_pose_msg, PublishState, get_curvature_from_output -from openpilot.frogpilot.tinygrad_modeld.constants import ModelConstants, Plan +from openpilot.starpilot.tinygrad_modeld.parse_model_outputs import Parser +from openpilot.starpilot.tinygrad_modeld.fill_model_msg import fill_model_msg, fill_pose_msg, PublishState, get_curvature_from_output +from openpilot.starpilot.tinygrad_modeld.constants import ModelConstants, Plan try: from openpilot.selfdrive.modeld.models.commonmodel_pyx import DrivingModelFrame, CLContext except ImportError: - from openpilot.frogpilot.tinygrad_modeld.models.commonmodel_pyx import DrivingModelFrame, CLContext -from openpilot.frogpilot.tinygrad_modeld.runners.tinygrad_helpers import qcom_tensor_from_opencl_address -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles, MODELS_PATH, params_memory + from openpilot.starpilot.tinygrad_modeld.models.commonmodel_pyx import DrivingModelFrame, CLContext +from openpilot.starpilot.tinygrad_modeld.runners.tinygrad_helpers import qcom_tensor_from_opencl_address +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles, MODELS_PATH, params_memory -PROCESS_NAME = "frogpilot.tinygrad_modeld.tinygrad_modeld" +PROCESS_NAME = "starpilot.tinygrad_modeld.tinygrad_modeld" SEND_RAW_PRED = os.getenv('SEND_RAW_PRED') BUILTIN_MODEL_KEY = "sc2" @@ -69,10 +69,10 @@ def _canonical_model_id(model_id: str) -> str: def get_action_from_model(model_output: dict[str, np.ndarray], prev_action: log.ModelDataV2.Action, - lat_action_t: float, long_action_t: float, v_ego: float, mlsim: bool, is_v9: bool, frogpilot_toggles) -> log.ModelDataV2.Action: + lat_action_t: float, long_action_t: float, v_ego: float, mlsim: bool, is_v9: bool, starpilot_toggles) -> log.ModelDataV2.Action: plan = model_output['plan'][0] if 'planplus' in model_output: - recovery_power = getattr(frogpilot_toggles, "recovery_power", 1.0) + recovery_power = getattr(starpilot_toggles, "recovery_power", 1.0) plan = plan + recovery_power * model_output['planplus'][0] cloudlog.error(f"planplus applied: shape {model_output['planplus'].shape}, RECOVERY_POWER {recovery_power}") desired_accel, should_stop = get_accel_from_plan_tomb_raider(plan[:,Plan.VELOCITY][:,0], @@ -196,7 +196,7 @@ class ModelState: ) cloudlog.error(f"Missing model artifact {path}, downloading {model_download_id}...") - from openpilot.frogpilot.assets.model_manager import ModelManager + from openpilot.starpilot.assets.model_manager import ModelManager ModelManager(params, params_memory).download_model(model_download_id) if path.is_file(): @@ -451,8 +451,8 @@ def main(demo=False): cloudlog.warning(f"connected extra cam with buffer size: {vipc_client_extra.buffer_len} ({vipc_client_extra.width} x {vipc_client_extra.height})") # messaging - pm = PubMaster(["modelV2", "drivingModelData", "cameraOdometry", "frogpilotModelV2"]) - sm = SubMaster(["deviceState", "carState", "roadCameraState", "liveCalibration", "driverMonitoringState", "carControl", "liveDelay", "frogpilotPlan"]) + pm = PubMaster(["modelV2", "drivingModelData", "cameraOdometry", "starpilotModelV2"]) + sm = SubMaster(["deviceState", "carState", "roadCameraState", "liveCalibration", "driverMonitoringState", "carControl", "liveDelay", "starpilotPlan"]) publish_state = PublishState() params = Params() @@ -484,8 +484,8 @@ def main(demo=False): DH = DesireHelper() - # FrogPilot variables - frogpilot_toggles = get_frogpilot_toggles(sm) + # StarPilot variables + starpilot_toggles = get_starpilot_toggles(sm) while True: # Keep receiving frames until we are at least 1 frame ahead of previous extra frame @@ -572,11 +572,11 @@ def main(demo=False): if model_output is not None: modelv2_send = messaging.new_message('modelV2') - frogpilot_modelv2_send = messaging.new_message('frogpilotModelV2') + starpilot_modelv2_send = messaging.new_message('starpilotModelV2') drivingdata_send = messaging.new_message('drivingModelData') posenet_send = messaging.new_message('cameraOdometry') - action = get_action_from_model(model_output, prev_action, lat_delay + DT_MDL, long_delay + DT_MDL, v_ego, model.mlsim, model.is_v9, frogpilot_toggles) + action = get_action_from_model(model_output, prev_action, lat_delay + DT_MDL, long_delay + DT_MDL, v_ego, model.mlsim, model.is_v9, starpilot_toggles) prev_action = action fill_model_msg(drivingdata_send, modelv2_send, model_output, action, publish_state, meta_main.frame_id, meta_extra.frame_id, frame_id, @@ -586,23 +586,23 @@ def main(demo=False): l_lane_change_prob = desire_state[log.Desire.laneChangeLeft] r_lane_change_prob = desire_state[log.Desire.laneChangeRight] lane_change_prob = l_lane_change_prob + r_lane_change_prob - DH.update(sm['carState'], sm['carControl'].latActive, lane_change_prob, sm['frogpilotPlan'], frogpilot_toggles) + DH.update(sm['carState'], sm['carControl'].latActive, lane_change_prob, sm['starpilotPlan'], starpilot_toggles) modelv2_send.modelV2.meta.laneChangeState = DH.lane_change_state modelv2_send.modelV2.meta.laneChangeDirection = DH.lane_change_direction - frogpilot_modelv2_send.frogpilotModelV2.turnDirection = DH.turn_direction + starpilot_modelv2_send.starpilotModelV2.turnDirection = DH.turn_direction drivingdata_send.drivingModelData.meta.laneChangeState = DH.lane_change_state drivingdata_send.drivingModelData.meta.laneChangeDirection = DH.lane_change_direction fill_pose_msg(posenet_send, model_output, meta_main.frame_id, vipc_dropped_frames, meta_main.timestamp_eof, live_calib_seen) pm.send('modelV2', modelv2_send) - pm.send('frogpilotModelV2', frogpilot_modelv2_send) + pm.send('starpilotModelV2', starpilot_modelv2_send) pm.send('drivingModelData', drivingdata_send) pm.send('cameraOdometry', posenet_send) last_vipc_frame_id = meta_main.frame_id - # Update FrogPilot parameters - if sm.updated['frogpilotPlan']: - frogpilot_toggles = get_frogpilot_toggles(sm) + # Update StarPilot parameters + if sm.updated['starpilotPlan']: + starpilot_toggles = get_starpilot_toggles(sm) if __name__ == "__main__": try: diff --git a/frogpilot/tinygrad_modeld/transforms/loadyuv.cc b/starpilot/tinygrad_modeld/transforms/loadyuv.cc similarity index 98% rename from frogpilot/tinygrad_modeld/transforms/loadyuv.cc rename to starpilot/tinygrad_modeld/transforms/loadyuv.cc index 4b03b9f2..1fab0327 100644 --- a/frogpilot/tinygrad_modeld/transforms/loadyuv.cc +++ b/starpilot/tinygrad_modeld/transforms/loadyuv.cc @@ -1,4 +1,4 @@ -#include "frogpilot/tinygrad_modeld/transforms/loadyuv.h" +#include "starpilot/tinygrad_modeld/transforms/loadyuv.h" #include #include diff --git a/frogpilot/tinygrad_modeld/transforms/loadyuv.cl b/starpilot/tinygrad_modeld/transforms/loadyuv.cl similarity index 100% rename from frogpilot/tinygrad_modeld/transforms/loadyuv.cl rename to starpilot/tinygrad_modeld/transforms/loadyuv.cl diff --git a/frogpilot/tinygrad_modeld/transforms/loadyuv.h b/starpilot/tinygrad_modeld/transforms/loadyuv.h similarity index 100% rename from frogpilot/tinygrad_modeld/transforms/loadyuv.h rename to starpilot/tinygrad_modeld/transforms/loadyuv.h diff --git a/frogpilot/tinygrad_modeld/transforms/transform.cc b/starpilot/tinygrad_modeld/transforms/transform.cc similarity index 98% rename from frogpilot/tinygrad_modeld/transforms/transform.cc rename to starpilot/tinygrad_modeld/transforms/transform.cc index a1648bf2..70f0b8b2 100644 --- a/frogpilot/tinygrad_modeld/transforms/transform.cc +++ b/starpilot/tinygrad_modeld/transforms/transform.cc @@ -1,4 +1,4 @@ -#include "frogpilot/tinygrad_modeld/transforms/transform.h" +#include "starpilot/tinygrad_modeld/transforms/transform.h" #include #include diff --git a/frogpilot/tinygrad_modeld/transforms/transform.cl b/starpilot/tinygrad_modeld/transforms/transform.cl similarity index 100% rename from frogpilot/tinygrad_modeld/transforms/transform.cl rename to starpilot/tinygrad_modeld/transforms/transform.cl diff --git a/frogpilot/tinygrad_modeld/transforms/transform.h b/starpilot/tinygrad_modeld/transforms/transform.h similarity index 100% rename from frogpilot/tinygrad_modeld/transforms/transform.h rename to starpilot/tinygrad_modeld/transforms/transform.h diff --git a/frogpilot/tools/compile_models.py b/starpilot/tools/compile_models.py similarity index 86% rename from frogpilot/tools/compile_models.py rename to starpilot/tools/compile_models.py index 1e22cf6a..22829ecd 100644 --- a/frogpilot/tools/compile_models.py +++ b/starpilot/tools/compile_models.py @@ -7,12 +7,12 @@ from pathlib import Path from openpilot.common.basedir import BASEDIR -from openpilot.frogpilot.common.frogpilot_download_utilities import download_file, verify_download -from openpilot.frogpilot.assets.model_manager import CANCEL_DOWNLOAD_PARAM, DOWNLOAD_PROGRESS_PARAM, MODEL_DOWNLOAD_PARAM -from openpilot.frogpilot.common.frogpilot_utilities import delete_file, run_cmd -from openpilot.frogpilot.common.frogpilot_variables import MODELS_PATH, RESOURCES_REPO +from openpilot.starpilot.common.starpilot_download_utilities import download_file, verify_download +from openpilot.starpilot.assets.model_manager import CANCEL_DOWNLOAD_PARAM, DOWNLOAD_PROGRESS_PARAM, MODEL_DOWNLOAD_PARAM +from openpilot.starpilot.common.starpilot_utilities import delete_file, run_cmd +from openpilot.starpilot.common.starpilot_variables import MODELS_PATH, RESOURCES_REPO -METADATA_SCRIPT = Path(BASEDIR) / "frogpilot/tinygrad_modeld/get_model_metadata.py" +METADATA_SCRIPT = Path(BASEDIR) / "starpilot/tinygrad_modeld/get_model_metadata.py" TINYGRAD_REPO_PATH = Path(BASEDIR) / "tinygrad_repo" MODELS_SOURCE = f"https://api.github.com/repos/{RESOURCES_REPO}/contents/uncompiled?ref=Models" @@ -47,7 +47,7 @@ def compile_model(onnx_path): def download_models(): session = requests.Session() session.headers.update({"Accept-Language": "en"}) - session.headers.update({"User-Agent": "frogpilot-model-compiler/1.0 (https://github.com/FrogAi/FrogPilot)"}) + session.headers.update({"User-Agent": "starpilot-model-compiler/1.0 (https://github.com/FrogAi/StarPilot)"}) COMPILED_DIR.mkdir(parents=True, exist_ok=True) UNCOMPILED_DIR.mkdir(parents=True, exist_ok=True) diff --git a/frogpilot/ui/moc_frogpilot_ui.cc b/starpilot/ui/moc_starpilot_ui.cc similarity index 71% rename from frogpilot/ui/moc_frogpilot_ui.cc rename to starpilot/ui/moc_starpilot_ui.cc index 91d34f0f..53bf7845 100644 --- a/frogpilot/ui/moc_frogpilot_ui.cc +++ b/starpilot/ui/moc_starpilot_ui.cc @@ -1,16 +1,16 @@ /**************************************************************************** -** Meta object code from reading C++ file 'frogpilot_ui.h' +** Meta object code from reading C++ file 'starpilot_ui.h' ** ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8) ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ -#include "frogpilot_ui.h" +#include "starpilot_ui.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'frogpilot_ui.h' doesn't include ." +#error "The header file 'starpilot_ui.h' doesn't include ." #elif Q_MOC_OUTPUT_REVISION != 67 #error "This file was generated using the moc from 5.12.8. It" #error "cannot be used with the include files from this version of Qt." @@ -20,27 +20,27 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotUIState_t { +struct qt_meta_stringdata_StarPilotUIState_t { QByteArrayData data[3]; char stringdata0[31]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotUIState_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotUIState_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotUIState_t qt_meta_stringdata_FrogPilotUIState = { +static const qt_meta_stringdata_StarPilotUIState_t qt_meta_stringdata_StarPilotUIState = { { -QT_MOC_LITERAL(0, 0, 16), // "FrogPilotUIState" +QT_MOC_LITERAL(0, 0, 16), // "StarPilotUIState" QT_MOC_LITERAL(1, 17, 12), // "themeUpdated" QT_MOC_LITERAL(2, 30, 0) // "" }, - "FrogPilotUIState\0themeUpdated\0" + "StarPilotUIState\0themeUpdated\0" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotUIState[] = { +static const uint qt_meta_data_StarPilotUIState[] = { // content: 8, // revision @@ -62,10 +62,10 @@ static const uint qt_meta_data_FrogPilotUIState[] = { 0 // eod }; -void FrogPilotUIState::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotUIState::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->themeUpdated(); break; @@ -74,8 +74,8 @@ void FrogPilotUIState::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotUIState::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotUIState::themeUpdated)) { + using _t = void (StarPilotUIState::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotUIState::themeUpdated)) { *result = 0; return; } @@ -84,30 +84,30 @@ void FrogPilotUIState::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotUIState::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotUIState::staticMetaObject = { { &QObject::staticMetaObject, - qt_meta_stringdata_FrogPilotUIState.data, - qt_meta_data_FrogPilotUIState, + qt_meta_stringdata_StarPilotUIState.data, + qt_meta_data_StarPilotUIState, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotUIState::metaObject() const +const QMetaObject *StarPilotUIState::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotUIState::qt_metacast(const char *_clname) +void *StarPilotUIState::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotUIState.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotUIState.stringdata0)) return static_cast(this); return QObject::qt_metacast(_clname); } -int FrogPilotUIState::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotUIState::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) @@ -125,7 +125,7 @@ int FrogPilotUIState::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotUIState::themeUpdated() +void StarPilotUIState::themeUpdated() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/offroad/data_settings.cc b/starpilot/ui/qt/offroad/data_settings.cc similarity index 87% rename from frogpilot/ui/qt/offroad/data_settings.cc rename to starpilot/ui/qt/offroad/data_settings.cc index aedb240e..3774a928 100644 --- a/frogpilot/ui/qt/offroad/data_settings.cc +++ b/starpilot/ui/qt/offroad/data_settings.cc @@ -1,6 +1,6 @@ #include -#include "frogpilot/ui/qt/offroad/data_settings.h" +#include "starpilot/ui/qt/offroad/data_settings.h" namespace { bool isPathPreserved(const char *path) { @@ -14,17 +14,17 @@ bool isPathPreserved(const char *path) { } } // namespace -FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotDataPanel::StarPilotDataPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; QStackedLayout *dataLayout = new QStackedLayout(); addItem(dataLayout); - FrogPilotListWidget *dataMainList = new FrogPilotListWidget(this); + StarPilotListWidget *dataMainList = new StarPilotListWidget(this); ScrollView *dataMainPanel = new ScrollView(dataMainList, this); dataLayout->addWidget(dataMainPanel); - FrogPilotListWidget *statsLabelsList = new FrogPilotListWidget(this); + StarPilotListWidget *statsLabelsList = new StarPilotListWidget(this); ScrollView *statsLabelsPanel = new ScrollView(statsLabelsList, this); dataLayout->addWidget(statsLabelsPanel); @@ -97,8 +97,8 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for } dataMainList->addItem(deleteErrorLogsButton); - FrogPilotButtonsControl *screenRecordingsButton = new FrogPilotButtonsControl(tr("Screen Recordings"), tr("Delete or rename screen recordings."), "", {tr("DELETE"), tr("DELETE ALL"), tr("RENAME")}); - QObject::connect(screenRecordingsButton, &FrogPilotButtonsControl::buttonClicked, [=](int id) { + StarPilotButtonsControl *screenRecordingsButton = new StarPilotButtonsControl(tr("Screen Recordings"), tr("Delete or rename screen recordings."), "", {tr("DELETE"), tr("DELETE ALL"), tr("RENAME")}); + QObject::connect(screenRecordingsButton, &StarPilotButtonsControl::buttonClicked, [=](int id) { QDir recordingsDir("/data/media/screen_recordings"); QStringList recordingsNames = recordingsDir.entryList(QDir::Files | QDir::NoDotAndDotDot); std::sort(recordingsNames.begin(), recordingsNames.end(), std::greater()); @@ -247,8 +247,8 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for } dataMainList->addItem(screenRecordingsButton); - FrogPilotButtonsControl *frogpilotBackupButton = new FrogPilotButtonsControl(tr("FrogPilot Backups"), tr("Create, delete, or restore FrogPilot backups."), "", {tr("BACKUP"), tr("DELETE"), tr("DELETE ALL"), tr("RESTORE")}); - QObject::connect(frogpilotBackupButton, &FrogPilotButtonsControl::buttonClicked, [=](int id) { + StarPilotButtonsControl *starpilotBackupButton = new StarPilotButtonsControl(tr("StarPilot Backups"), tr("Create, delete, or restore StarPilot backups."), "", {tr("BACKUP"), tr("DELETE"), tr("DELETE ALL"), tr("RESTORE")}); + QObject::connect(starpilotBackupButton, &StarPilotButtonsControl::buttonClicked, [=](int id) { QDir backupDir("/data/backups"); QFileInfoList backupList = backupDir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot); @@ -312,25 +312,25 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for std::thread([=]() { parent->keepScreenOn = true; - frogpilotBackupButton->setEnabled(false); - frogpilotBackupButton->setValue(tr("Backing up...")); + starpilotBackupButton->setEnabled(false); + starpilotBackupButton->setValue(tr("Backing up...")); - frogpilotBackupButton->setVisibleButton(1, false); - frogpilotBackupButton->setVisibleButton(2, false); - frogpilotBackupButton->setVisibleButton(3, false); + starpilotBackupButton->setVisibleButton(1, false); + starpilotBackupButton->setVisibleButton(2, false); + starpilotBackupButton->setVisibleButton(3, false); std::system(QString("tar --use-compress-program=zstd -cf %1 %2").arg(backupDir.absoluteFilePath(name + ".tar.zst"), "/data/openpilot").toStdString().c_str()); - frogpilotBackupButton->setValue(tr("Backup created!")); + starpilotBackupButton->setValue(tr("Backup created!")); util::sleep_for(2500); - frogpilotBackupButton->setEnabled(true); - frogpilotBackupButton->setValue(""); + starpilotBackupButton->setEnabled(true); + starpilotBackupButton->setValue(""); - frogpilotBackupButton->setVisibleButton(1, true); - frogpilotBackupButton->setVisibleButton(2, true); - frogpilotBackupButton->setVisibleButton(3, true); + starpilotBackupButton->setVisibleButton(1, true); + starpilotBackupButton->setVisibleButton(2, true); + starpilotBackupButton->setVisibleButton(3, true); parent->keepScreenOn = false; }).detach(); @@ -343,25 +343,25 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for std::thread([=]() { parent->keepScreenOn = true; - frogpilotBackupButton->setEnabled(false); - frogpilotBackupButton->setValue(tr("Deleting...")); + starpilotBackupButton->setEnabled(false); + starpilotBackupButton->setValue(tr("Deleting...")); - frogpilotBackupButton->setVisibleButton(0, false); - frogpilotBackupButton->setVisibleButton(2, false); - frogpilotBackupButton->setVisibleButton(3, false); + starpilotBackupButton->setVisibleButton(0, false); + starpilotBackupButton->setVisibleButton(2, false); + starpilotBackupButton->setVisibleButton(3, false); QFile::remove(backupDir.absoluteFilePath(backupMap[selection])); - frogpilotBackupButton->setValue(tr("Deleted!")); + starpilotBackupButton->setValue(tr("Deleted!")); util::sleep_for(2500); - frogpilotBackupButton->setEnabled(true); - frogpilotBackupButton->setValue(""); + starpilotBackupButton->setEnabled(true); + starpilotBackupButton->setValue(""); - frogpilotBackupButton->setVisibleButton(0, true); - frogpilotBackupButton->setVisibleButton(2, true); - frogpilotBackupButton->setVisibleButton(3, true); + starpilotBackupButton->setVisibleButton(0, true); + starpilotBackupButton->setVisibleButton(2, true); + starpilotBackupButton->setVisibleButton(3, true); parent->keepScreenOn = false; }).detach(); @@ -369,30 +369,30 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for } } else if (id == 2) { - if (ConfirmationDialog::confirm(tr("Delete all FrogPilot backups?"), tr("Delete All"), this)) { + if (ConfirmationDialog::confirm(tr("Delete all StarPilot backups?"), tr("Delete All"), this)) { std::thread([=]() mutable { parent->keepScreenOn = true; - frogpilotBackupButton->setEnabled(false); - frogpilotBackupButton->setValue(tr("Deleting...")); + starpilotBackupButton->setEnabled(false); + starpilotBackupButton->setValue(tr("Deleting...")); - frogpilotBackupButton->setVisibleButton(0, false); - frogpilotBackupButton->setVisibleButton(1, false); - frogpilotBackupButton->setVisibleButton(3, false); + starpilotBackupButton->setVisibleButton(0, false); + starpilotBackupButton->setVisibleButton(1, false); + starpilotBackupButton->setVisibleButton(3, false); backupDir.removeRecursively(); backupDir.mkpath("."); - frogpilotBackupButton->setValue(tr("Deleted!")); + starpilotBackupButton->setValue(tr("Deleted!")); util::sleep_for(2500); - frogpilotBackupButton->setEnabled(true); - frogpilotBackupButton->setValue(""); + starpilotBackupButton->setEnabled(true); + starpilotBackupButton->setValue(""); - frogpilotBackupButton->setVisibleButton(0, true); - frogpilotBackupButton->setVisibleButton(1, true); - frogpilotBackupButton->setVisibleButton(3, true); + starpilotBackupButton->setVisibleButton(0, true); + starpilotBackupButton->setVisibleButton(1, true); + starpilotBackupButton->setVisibleButton(3, true); parent->keepScreenOn = false; }).detach(); @@ -401,25 +401,25 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for } else if (id == 3) { QString selection = MultiOptionDialog::getSelection(tr("Choose a backup to restore"), friendlyNames, "", this); if (!selection.isEmpty()) { - if (FrogPilotConfirmationDialog::yesorno(tr("Restore this backup? This will overwrite your current installation and reboot the device."), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Restore this backup? This will overwrite your current installation and reboot the device."), this)) { std::thread([=]() { parent->keepScreenOn = true; - frogpilotBackupButton->setEnabled(false); - frogpilotBackupButton->setValue(tr("Restoring...")); + starpilotBackupButton->setEnabled(false); + starpilotBackupButton->setValue(tr("Restoring...")); - frogpilotBackupButton->setVisibleButton(0, false); - frogpilotBackupButton->setVisibleButton(1, false); - frogpilotBackupButton->setVisibleButton(2, false); + starpilotBackupButton->setVisibleButton(0, false); + starpilotBackupButton->setVisibleButton(1, false); + starpilotBackupButton->setVisibleButton(2, false); std::system(QString("rm -rf /data/openpilot/* && tar --use-compress-program=zstd -xf %1 -C /").arg(backupDir.absoluteFilePath(backupMap[selection])).toStdString().c_str()); QFile("/cache/on_backup").open(QIODevice::WriteOnly); - frogpilotBackupButton->setValue(tr("Restored!")); + starpilotBackupButton->setValue(tr("Restored!")); util::sleep_for(2500); - frogpilotBackupButton->setValue(tr("Rebooting...")); + starpilotBackupButton->setValue(tr("Rebooting...")); util::sleep_for(2500); @@ -430,12 +430,12 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for } }); if (forceOpenDescriptions) { - frogpilotBackupButton->showDescription(); + starpilotBackupButton->showDescription(); } - dataMainList->addItem(frogpilotBackupButton); + dataMainList->addItem(starpilotBackupButton); - FrogPilotButtonsControl *toggleBackupButton = new FrogPilotButtonsControl(tr("Toggle Backups"), tr("Create, delete, or restore toggle backups."), "", {tr("BACKUP"), tr("DELETE"), tr("DELETE ALL"), tr("RESTORE")}); - QObject::connect(toggleBackupButton, &FrogPilotButtonsControl::buttonClicked, [=](int id) { + StarPilotButtonsControl *toggleBackupButton = new StarPilotButtonsControl(tr("Toggle Backups"), tr("Create, delete, or restore toggle backups."), "", {tr("BACKUP"), tr("DELETE"), tr("DELETE ALL"), tr("RESTORE")}); + QObject::connect(toggleBackupButton, &StarPilotButtonsControl::buttonClicked, [=](int id) { QDir backupDir("/data/toggle_backups"); QStringList backupNames = backupDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); @@ -580,7 +580,7 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for } else if (id == 3) { QString selection = MultiOptionDialog::getSelection(tr("Choose a backup to restore"), backupMap.keys(), "", this); if (!selection.isEmpty()) { - if (FrogPilotConfirmationDialog::yesorno(tr("Restore this backup? This will overwrite your current settings!"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Restore this backup? This will overwrite your current settings!"), this)) { std::thread([=]() { parent->keepScreenOn = true; @@ -593,7 +593,7 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for std::system(QString("cp -r %1/* /data/params/d/").arg(backupDir.absoluteFilePath(backupMap[selection])).toStdString().c_str()); - updateFrogPilotToggles(); + updateStarPilotToggles(); toggleBackupButton->setValue(tr("Restored!")); @@ -617,11 +617,11 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for } dataMainList->addItem(toggleBackupButton); - FrogPilotButtonsControl *viewStatsButton = new FrogPilotButtonsControl(tr("FrogPilot Stats"), tr("View your collected FrogPilot stats."), "", {tr("RESET"), tr("VIEW")}); - QObject::connect(viewStatsButton, &FrogPilotButtonsControl::buttonClicked, [dataLayout, statsLabelsPanel, this](int id) { + StarPilotButtonsControl *viewStatsButton = new StarPilotButtonsControl(tr("StarPilot Stats"), tr("View your collected StarPilot stats."), "", {tr("RESET"), tr("VIEW")}); + QObject::connect(viewStatsButton, &StarPilotButtonsControl::buttonClicked, [dataLayout, statsLabelsPanel, this](int id) { if (id == 0) { - if (ConfirmationDialog::confirm(tr("Are you sure you want to reset all of your FrogPilot stats?"), tr("Reset"), this)) { - params.remove("FrogPilotStats"); + if (ConfirmationDialog::confirm(tr("Are you sure you want to reset all of your StarPilot stats?"), tr("Reset"), this)) { + params.remove("StarPilotStats"); } } else if (id == 1) { emit openSubPanel(); @@ -633,10 +633,10 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for } dataMainList->addItem(viewStatsButton); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [dataLayout, dataMainPanel] { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [dataLayout, dataMainPanel] { dataLayout->setCurrentWidget(dataMainPanel); }); - QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, [this](bool metric){isMetric = metric;}); + QObject::connect(parent, &StarPilotSettingsWindow::updateMetric, [this](bool metric){isMetric = metric;}); QObject::connect(uiState(), &UIState::offroadTransition, [statsLabelsList, this](bool offroad) { if (offroad) { updateStatsLabels(statsLabelsList); @@ -646,10 +646,10 @@ FrogPilotDataPanel::FrogPilotDataPanel(FrogPilotSettingsWindow *parent, bool for updateStatsLabels(statsLabelsList); } -void FrogPilotDataPanel::updateStatsLabels(FrogPilotListWidget *labelsList) { +void StarPilotDataPanel::updateStatsLabels(StarPilotListWidget *labelsList) { labelsList->clear(); - QJsonObject stats = QJsonDocument::fromJson(QByteArray::fromStdString(params.get("FrogPilotStats"))).object(); + QJsonObject stats = QJsonDocument::fromJson(QByteArray::fromStdString(params.get("StarPilotStats"))).object(); static QMap> keyMap = { {"AEBEvents", {tr("Total Emergency Brake Alerts"), "count"}}, @@ -662,9 +662,9 @@ void FrogPilotDataPanel::updateStatsLabels(FrogPilotListWidget *labelsList) { {"ExperimentalModeTime", {tr("Time Using \"Experimental Mode\""), "timePercent"}}, {"FrogChirps", {tr("Total Frog Chirps"), "count"}}, {"FrogHops", {tr("Total Frog Hops"), "count"}}, - {"FrogPilotDrives", {tr("Total Drives"), "count"}}, - {"FrogPilotMeters", {tr("Total Distance Driven"), "distance"}}, - {"FrogPilotSeconds", {tr("Total Driving Time"), "time"}}, + {"StarPilotDrives", {tr("Total Drives"), "count"}}, + {"StarPilotMeters", {tr("Total Distance Driven"), "distance"}}, + {"StarPilotSeconds", {tr("Total Driving Time"), "time"}}, {"FrogSqueaks", {tr("Total Frog Squeaks"), "count"}}, {"GoatScreams", {tr("Total Goat Screams"), "count"}}, {"LateralTime", {tr("Time Using Lateral Control"), "timePercent"}}, diff --git a/starpilot/ui/qt/offroad/data_settings.h b/starpilot/ui/qt/offroad/data_settings.h new file mode 100644 index 00000000..dc01c17c --- /dev/null +++ b/starpilot/ui/qt/offroad/data_settings.h @@ -0,0 +1,23 @@ +#pragma once + +#include "starpilot/ui/qt/offroad/starpilot_settings.h" + +class StarPilotDataPanel : public StarPilotListWidget { + Q_OBJECT + +public: + explicit StarPilotDataPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); + +signals: + void openSubPanel(); + +private: + void updateStatsLabels(StarPilotListWidget *labelsList); + + bool forceOpenDescriptions; + bool isMetric; + + StarPilotSettingsWindow *parent; + + Params params; +}; diff --git a/frogpilot/ui/qt/offroad/device_settings.cc b/starpilot/ui/qt/offroad/device_settings.cc similarity index 81% rename from frogpilot/ui/qt/offroad/device_settings.cc rename to starpilot/ui/qt/offroad/device_settings.cc index 42d03dbc..c91ed28a 100644 --- a/frogpilot/ui/qt/offroad/device_settings.cc +++ b/starpilot/ui/qt/offroad/device_settings.cc @@ -1,7 +1,7 @@ -#include "frogpilot/ui/screenrecorder/screenrecorder.h" -#include "frogpilot/ui/qt/offroad/device_settings.h" +#include "starpilot/ui/screenrecorder/screenrecorder.h" +#include "starpilot/ui/qt/offroad/device_settings.h" -FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotDevicePanel::StarPilotDevicePanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; ScreenRecorder *screenRecorder = new ScreenRecorder(this); @@ -10,14 +10,14 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool QStackedLayout *deviceLayout = new QStackedLayout(); addItem(deviceLayout); - FrogPilotListWidget *deviceList = new FrogPilotListWidget(this); + StarPilotListWidget *deviceList = new StarPilotListWidget(this); ScrollView *devicePanel = new ScrollView(deviceList, this); deviceLayout->addWidget(devicePanel); - FrogPilotListWidget *deviceManagementList = new FrogPilotListWidget(this); - FrogPilotListWidget *screenList = new FrogPilotListWidget(this); + StarPilotListWidget *deviceManagementList = new StarPilotListWidget(this); + StarPilotListWidget *screenList = new StarPilotListWidget(this); ScrollView *deviceManagementPanel = new ScrollView(deviceManagementList, this); ScrollView *screenPanel = new ScrollView(screenList, this); @@ -26,7 +26,7 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool deviceLayout->addWidget(screenPanel); const std::vector> deviceToggles { - {"DeviceManagement", tr("Device Settings"), tr("Settings that control how the device runs, powers off, and manages driving data."), "../../frogpilot/assets/toggle_icons/icon_device.png"}, + {"DeviceManagement", tr("Device Settings"), tr("Settings that control how the device runs, powers off, and manages driving data."), "../../starpilot/assets/toggle_icons/icon_device.png"}, {"DeviceShutdown", tr("Device Shutdown Timer"), tr("Keep the device on for the set amount of time after a drive before it shuts down automatically."), ""}, {"NoLogging", tr("Disable Logging"), QString("%1

%2").arg(tr("WARNING: This will prevent your drives from being recorded and all data will be unobtainable!")).arg(tr("Prevent the device from saving driving data.")), ""}, {"NoUploads", tr("Disable Uploads"), QString("%1

%2").arg(tr("WARNING: This will prevent your drives from being uploaded to comma connect which will impact debugging and official support from comma!")).arg(tr("Prevent the device from uploading driving data.")), ""}, @@ -35,7 +35,7 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool {"IncreaseThermalLimits", tr("Raise Temperature Limits"), QString("%1

%2").arg(tr("WARNING: Running at higher temperatures may damage your device!")).arg(tr("Allow the device to run at higher temperatures before throttling or shutting down. Use only if you understand the risks!")), ""}, {"UseKonikServer", tr("Use Konik Server"), tr("Upload driving data to \"stable.konik.ai\" instead of \"connect.comma.ai\"."), ""}, - {"ScreenManagement", tr("Screen Settings"), tr("Settings that control screen brightness, screen recording, and timeout duration."), "../../frogpilot/assets/toggle_icons/icon_light.png"}, + {"ScreenManagement", tr("Screen Settings"), tr("Settings that control screen brightness, screen recording, and timeout duration."), "../../starpilot/assets/toggle_icons/icon_light.png"}, {"ScreenBrightness", tr("Screen Brightness (Offroad)"), tr("The screen brightness while not driving."), ""}, {"ScreenBrightnessOnroad", tr("Screen Brightness (Onroad)"), tr("The screen brightness while driving."), ""}, {"ScreenRecorder", tr("Screen Recorder"), tr("Add a button to the driving screen to record the display."), ""}, @@ -48,8 +48,8 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool AbstractControl *deviceToggle; if (param == "DeviceManagement") { - FrogPilotManageControl *deviceManagementToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(deviceManagementToggle, &FrogPilotManageControl::manageButtonClicked, [deviceLayout, deviceManagementPanel]() { + StarPilotManageControl *deviceManagementToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(deviceManagementToggle, &StarPilotManageControl::manageButtonClicked, [deviceLayout, deviceManagementPanel]() { deviceLayout->setCurrentWidget(deviceManagementPanel); }); deviceToggle = deviceManagementToggle; @@ -58,17 +58,17 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool for (int i = 0; i <= 33; ++i) { shutdownLabels[i] = i == 0 ? tr("5 mins") : i <= 3 ? QString::number(i * 15) + tr(" mins") : QString::number(i - 3) + (i == 4 ? tr(" hour") : tr(" hours")); } - deviceToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 33, QString(), shutdownLabels); + deviceToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 33, QString(), shutdownLabels); } else if (param == "NoUploads") { std::vector uploadsToggles{"DisableOnroadUploads"}; std::vector uploadsToggleNames{tr("Disable Onroad Only")}; - deviceToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, uploadsToggles, uploadsToggleNames); + deviceToggle = new StarPilotButtonToggleControl(param, title, desc, icon, uploadsToggles, uploadsToggleNames); } else if (param == "LowVoltageShutdown") { - deviceToggle = new FrogPilotParamValueControl(param, title, desc, icon, 11.8, 12.5, tr(" volts"), std::map(), 0.1); + deviceToggle = new StarPilotParamValueControl(param, title, desc, icon, 11.8, 12.5, tr(" volts"), std::map(), 0.1); } else if (param == "ScreenManagement") { - FrogPilotManageControl *screenToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(screenToggle, &FrogPilotManageControl::manageButtonClicked, [deviceLayout, screenPanel]() { + StarPilotManageControl *screenToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(screenToggle, &StarPilotManageControl::manageButtonClicked, [deviceLayout, screenPanel]() { deviceLayout->setCurrentWidget(screenPanel); }); deviceToggle = screenToggle; @@ -78,11 +78,11 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool for (int i = 0; i <= 101; ++i) { brightnessLabels[i] = i == 0 ? tr("Screen Off") : i == 101 ? tr("Auto") : QString::number(i) + "%"; } - deviceToggle = new FrogPilotParamValueControl(param, title, desc, icon, minBrightness, 101, QString(), brightnessLabels, 1, true); + deviceToggle = new StarPilotParamValueControl(param, title, desc, icon, minBrightness, 101, QString(), brightnessLabels, 1, true); } else if (param == "ScreenRecorder") { std::vector recorderButtonNames{tr("Start Recording"), tr("Stop Recording")}; - FrogPilotButtonControl *recorderToggle = new FrogPilotButtonControl(param, title, desc, icon, recorderButtonNames, true); - QObject::connect(recorderToggle, &FrogPilotButtonControl::buttonClicked, [recorderToggle, screenRecorder](int id) { + StarPilotButtonControl *recorderToggle = new StarPilotButtonControl(param, title, desc, icon, recorderButtonNames, true); + QObject::connect(recorderToggle, &StarPilotButtonControl::buttonClicked, [recorderToggle, screenRecorder](int id) { if (id == 0) { recorderToggle->setCheckedButton(1); @@ -102,7 +102,7 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool recorderToggle->setVisibleButton(1, false); deviceToggle = recorderToggle; } else if (param == "ScreenTimeout" || param == "ScreenTimeoutOnroad") { - deviceToggle = new FrogPilotParamValueControl(param, title, desc, icon, 5, 60, tr(" seconds"), {}, 5); + deviceToggle = new StarPilotParamValueControl(param, title, desc, icon, 5, 60, tr(" seconds"), {}, 5); } else { deviceToggle = new ParamControl(param, title, desc, icon); @@ -120,8 +120,8 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool parentKeys.insert(param); } - if (FrogPilotManageControl *frogPilotManageToggle = qobject_cast(deviceToggle)) { - QObject::connect(frogPilotManageToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + if (StarPilotManageControl *frogPilotManageToggle = qobject_cast(deviceToggle)) { + QObject::connect(frogPilotManageToggle, &StarPilotManageControl::manageButtonClicked, [this]() { emit openSubPanel(); openDescriptions(forceOpenDescriptions, toggles); }); @@ -141,8 +141,8 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool QSet brightnessKeys = {"ScreenBrightness", "ScreenBrightnessOnroad"}; for (const QString &key : brightnessKeys) { - FrogPilotParamValueControl *paramControl = static_cast(toggles[key]); - QObject::connect(paramControl, &FrogPilotParamValueControl::valueChanged, [key, this](int value) { + StarPilotParamValueControl *paramControl = static_cast(toggles[key]); + QObject::connect(paramControl, &StarPilotParamValueControl::valueChanged, [key, this](int value) { if (!started && key == "ScreenBrightness") { Hardware::set_brightness(value); } else if (started && key == "ScreenBrightnessOnroad") { @@ -153,8 +153,8 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool QSet forceUpdateKeys = {"NoUploads"}; for (const QString &key : forceUpdateKeys) { - QObject::connect(static_cast(toggles[key]), &FrogPilotButtonToggleControl::buttonClicked, this, &FrogPilotDevicePanel::updateToggles); - QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, this, &FrogPilotDevicePanel::updateToggles); + QObject::connect(static_cast(toggles[key]), &StarPilotButtonToggleControl::buttonClicked, this, &StarPilotDevicePanel::updateToggles); + QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, this, &StarPilotDevicePanel::updateToggles); } QSet rebootKeys = {"HigherBitrate", "UseKonikServer"}; @@ -181,7 +181,7 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool } } - if (FrogPilotConfirmationDialog::toggleReboot(this)) { + if (StarPilotConfirmationDialog::toggleReboot(this)) { Hardware::reboot(); } }); @@ -189,18 +189,18 @@ FrogPilotDevicePanel::FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool openDescriptions(forceOpenDescriptions, toggles); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [deviceLayout, devicePanel, this] { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [deviceLayout, devicePanel, this] { openDescriptions(forceOpenDescriptions, toggles); deviceLayout->setCurrentWidget(devicePanel); }); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotDevicePanel::updateState); + QObject::connect(uiState(), &UIState::uiUpdate, this, &StarPilotDevicePanel::updateState); } -void FrogPilotDevicePanel::showEvent(QShowEvent *event) { +void StarPilotDevicePanel::showEvent(QShowEvent *event) { updateToggles(); } -void FrogPilotDevicePanel::updateState(const UIState &s) { +void StarPilotDevicePanel::updateState(const UIState &s) { if (!isVisible()) { return; } @@ -208,7 +208,7 @@ void FrogPilotDevicePanel::updateState(const UIState &s) { started = s.scene.started; } -void FrogPilotDevicePanel::updateToggles() { +void StarPilotDevicePanel::updateToggles() { for (auto &[key, toggle] : toggles) { if (parentKeys.contains(key)) { toggle->setVisible(false); @@ -220,7 +220,7 @@ void FrogPilotDevicePanel::updateToggles() { continue; } - bool setVisible = parent->tuningLevel >= parent->frogpilotToggleLevels[key].toDouble(); + bool setVisible = parent->tuningLevel >= parent->starpilotToggleLevels[key].toDouble(); if (key == "HigherBitrate") { setVisible &= params.getBool("DeviceManagement") && params.getBool("NoUploads") && !params.getBool("DisableOnroadUploads"); diff --git a/frogpilot/ui/qt/offroad/device_settings.h b/starpilot/ui/qt/offroad/device_settings.h similarity index 76% rename from frogpilot/ui/qt/offroad/device_settings.h rename to starpilot/ui/qt/offroad/device_settings.h index d1577179..569fc9bc 100644 --- a/frogpilot/ui/qt/offroad/device_settings.h +++ b/starpilot/ui/qt/offroad/device_settings.h @@ -1,12 +1,12 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotDevicePanel : public FrogPilotListWidget { +class StarPilotDevicePanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotDevicePanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotDevicePanel(StarPilotSettingsWindow *parent, bool forceOpen = false); signals: void openSubPanel(); @@ -28,7 +28,7 @@ private: QSet parentKeys; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; Params params; }; diff --git a/frogpilot/ui/qt/offroad/expandable_multi_option_dialog.cc b/starpilot/ui/qt/offroad/expandable_multi_option_dialog.cc similarity index 99% rename from frogpilot/ui/qt/offroad/expandable_multi_option_dialog.cc rename to starpilot/ui/qt/offroad/expandable_multi_option_dialog.cc index d93dc151..573c578c 100644 --- a/frogpilot/ui/qt/offroad/expandable_multi_option_dialog.cc +++ b/starpilot/ui/qt/offroad/expandable_multi_option_dialog.cc @@ -1,4 +1,4 @@ -#include "frogpilot/ui/qt/offroad/expandable_multi_option_dialog.h" +#include "starpilot/ui/qt/offroad/expandable_multi_option_dialog.h" #include #include @@ -130,7 +130,7 @@ ExpandableMultiOptionDialog::ExpandableMultiOptionDialog(const QString &prompt_t width: 50px; } QComboBox::down-arrow { - image: url("../../frogpilot/assets/toggle_icons/icon_dropdown.png"); + image: url("../../starpilot/assets/toggle_icons/icon_dropdown.png"); width: 30px; height: 30px; } diff --git a/frogpilot/ui/qt/offroad/expandable_multi_option_dialog.h b/starpilot/ui/qt/offroad/expandable_multi_option_dialog.h similarity index 100% rename from frogpilot/ui/qt/offroad/expandable_multi_option_dialog.h rename to starpilot/ui/qt/offroad/expandable_multi_option_dialog.h diff --git a/frogpilot/ui/qt/offroad/lateral_settings.cc b/starpilot/ui/qt/offroad/lateral_settings.cc similarity index 80% rename from frogpilot/ui/qt/offroad/lateral_settings.cc rename to starpilot/ui/qt/offroad/lateral_settings.cc index 021f4ddb..946cedc1 100644 --- a/frogpilot/ui/qt/offroad/lateral_settings.cc +++ b/starpilot/ui/qt/offroad/lateral_settings.cc @@ -1,22 +1,22 @@ -#include "frogpilot/ui/qt/offroad/lateral_settings.h" +#include "starpilot/ui/qt/offroad/lateral_settings.h" -FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotLateralPanel::StarPilotLateralPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; QStackedLayout *lateralLayout = new QStackedLayout(); addItem(lateralLayout); - FrogPilotListWidget *lateralList = new FrogPilotListWidget(this); + StarPilotListWidget *lateralList = new StarPilotListWidget(this); ScrollView *lateralPanel = new ScrollView(lateralList, this); lateralLayout->addWidget(lateralPanel); - FrogPilotListWidget *advancedLateralTuneList = new FrogPilotListWidget(this); - FrogPilotListWidget *aolList = new FrogPilotListWidget(this); - FrogPilotListWidget *laneChangeList = new FrogPilotListWidget(this); - FrogPilotListWidget *lateralTuneList = new FrogPilotListWidget(this); - FrogPilotListWidget *qolList = new FrogPilotListWidget(this); + StarPilotListWidget *advancedLateralTuneList = new StarPilotListWidget(this); + StarPilotListWidget *aolList = new StarPilotListWidget(this); + StarPilotListWidget *laneChangeList = new StarPilotListWidget(this); + StarPilotListWidget *lateralTuneList = new StarPilotListWidget(this); + StarPilotListWidget *qolList = new StarPilotListWidget(this); ScrollView *advancedLateralTunePanel = new ScrollView(advancedLateralTuneList, this); ScrollView *aolPanel = new ScrollView(aolList, this); @@ -31,7 +31,7 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bo lateralLayout->addWidget(qolPanel); const std::vector> lateralToggles { - {"AdvancedLateralTune", tr("Advanced Lateral Tuning"), tr("Advanced steering control changes to fine-tune how openpilot drives."), "../../frogpilot/assets/toggle_icons/icon_advanced_lateral_tune.png"}, + {"AdvancedLateralTune", tr("Advanced Lateral Tuning"), tr("Advanced steering control changes to fine-tune how openpilot drives."), "../../starpilot/assets/toggle_icons/icon_advanced_lateral_tune.png"}, {"SteerDelay", parent->steerActuatorDelay != 0 ? QString(tr("Actuator Delay (Default: %1)")).arg(QString::number(parent->steerActuatorDelay, 'f', 2)) : tr("Actuator Delay"), tr("The time between openpilot's steering command and the vehicle's response. Increase if the vehicle reacts late; decrease if it feels jumpy. Auto-learned by default."), ""}, {"SteerFriction", parent->friction != 0 ? QString(tr("Friction (Default: %1)")).arg(QString::number(parent->friction, 'f', 2)) : tr("Friction"), tr("Compensates for steering friction. Increase if the wheel sticks near center; decrease if it jitters. Auto-learned by default."), ""}, {"SteerKP", parent->steerKp != 0 ? QString(tr("Kp Factor (Default: %1)")).arg(QString::number(parent->steerKp, 'f', 2)) : tr("Kp Factor"), tr("How strongly openpilot corrects lane position. Higher is tighter but twitchier; lower is smoother but slower. Auto-learned by default."), ""}, @@ -41,23 +41,23 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bo {"ForceAutoTuneOff", tr("Force Auto-Tune Off"), tr("Force-disable openpilot's live auto-tuning for \"Friction\" and \"Lateral Acceleration\" and use the set value instead."), ""}, {"ForceTorqueController", tr("Force Torque Controller"), tr("Use torque-based steering control instead of angle-based control for smoother lane keeping, especially in curves."), ""}, - {"AlwaysOnLateral", tr("Always On Lateral"), tr("openpilot's steering remains active even when the accelerator or brake pedals are pressed."), "../../frogpilot/assets/toggle_icons/icon_always_on_lateral.png"}, + {"AlwaysOnLateral", tr("Always On Lateral"), tr("openpilot's steering remains active even when the accelerator or brake pedals are pressed."), "../../starpilot/assets/toggle_icons/icon_always_on_lateral.png"}, {"AlwaysOnLateralLKAS", tr("Enable With LKAS"), tr("Enable \"Always On Lateral\" whenever \"LKAS\" is on, even when openpilot is not engaged."), ""}, {"PauseAOLOnBrake", tr("Pause on Brake Press Below"), tr("Pause \"Always On Lateral\" below the set speed while the brake pedal is pressed."), ""}, - {"LaneChanges", tr("Lane Changes"), tr("Allow openpilot to change lanes."), "../../frogpilot/assets/toggle_icons/icon_lane.png"}, + {"LaneChanges", tr("Lane Changes"), tr("Allow openpilot to change lanes."), "../../starpilot/assets/toggle_icons/icon_lane.png"}, {"NudgelessLaneChange", tr("Automatic Lane Changes"), tr("When the turn signal is on, openpilot will automatically change lanes. No steering-wheel nudge required!"), ""}, {"LaneChangeTime", tr("Lane Change Delay"), tr("Delay between turn signal activation and the start of an automatic lane change."), ""}, {"MinimumLaneChangeSpeed", tr("Minimum Lane Change Speed"), tr("Lowest speed at which openpilot will change lanes."), ""}, {"LaneDetectionWidth", tr("Minimum Lane Width"), tr("Prevent automatic lane changes into lanes narrower than the set width."), ""}, {"OneLaneChange", tr("One Lane Change Per Signal"), tr("Limit automatic lane changes to one per turn-signal activation."), ""}, - {"LateralTune", tr("Lateral Tuning"), tr("Miscellaneous steering control changes to fine-tune how openpilot drives."), "../../frogpilot/assets/toggle_icons/icon_lateral_tune.png"}, + {"LateralTune", tr("Lateral Tuning"), tr("Miscellaneous steering control changes to fine-tune how openpilot drives."), "../../starpilot/assets/toggle_icons/icon_lateral_tune.png"}, {"TurnDesires", tr("Force Turn Desires Below Lane Change Speed"), tr("While driving below the minimum lane change speed with an active turn signal, instruct openpilot to turn left/right."), ""}, {"NNFF", tr("Neural Network Feedforward (NNFF)"), tr("Twilsonco's \"Neural Network FeedForward\" controller. Uses a trained neural network model to predict steering torque based on vehicle speed, roll, and past/future planned path data for smoother, model-based steering."), ""}, {"NNFFLite", tr("Neural Network Feedforward (NNFF) Lite"), tr("A lightweight version of Twilsonco's \"Neural Network FeedForward\" controller. Uses the \"look-ahead\" planned lateral jerk logic from the full model to help smoothen steering adjustments in curves, but does not use the full neural network for torque calculation."), ""}, - {"QOLLateral", tr("Quality of Life"), tr("Steering control changes to fine-tune how openpilot drives."), "../../frogpilot/assets/toggle_icons/icon_quality_of_life.png"}, + {"QOLLateral", tr("Quality of Life"), tr("Steering control changes to fine-tune how openpilot drives."), "../../starpilot/assets/toggle_icons/icon_quality_of_life.png"}, {"PauseLateralSpeed", tr("Pause Steering Below"), tr("Pause steering below the set speed."), ""} }; @@ -65,39 +65,39 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bo AbstractControl *lateralToggle; if (param == "AdvancedLateralTune") { - FrogPilotManageControl *advancedLateralTuneToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(advancedLateralTuneToggle, &FrogPilotManageControl::manageButtonClicked, [lateralLayout, advancedLateralTunePanel]() { + StarPilotManageControl *advancedLateralTuneToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(advancedLateralTuneToggle, &StarPilotManageControl::manageButtonClicked, [lateralLayout, advancedLateralTunePanel]() { lateralLayout->setCurrentWidget(advancedLateralTunePanel); }); lateralToggle = advancedLateralTuneToggle; } else if (param == "SteerDelay") { std::vector steerDelayButton{"Reset"}; - lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0.01, 1, QString(), std::map(), 0.01, false, {}, steerDelayButton, false, false); + lateralToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, 0.01, 1, QString(), std::map(), 0.01, false, {}, steerDelayButton, false, false); } else if (param == "SteerFriction") { std::vector steerFrictionButton{"Reset"}; - lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0, 1, QString(), std::map(), 0.01, false, {}, steerFrictionButton, false, false); + lateralToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, 0, 1, QString(), std::map(), 0.01, false, {}, steerFrictionButton, false, false); } else if (param == "SteerKP") { std::vector steerKPButton{"Reset"}; - lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, parent->steerKp * 0.5, parent->steerKp * 1.5, QString(), std::map(), 0.01, false, {}, steerKPButton, false, false); + lateralToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, parent->steerKp * 0.5, parent->steerKp * 1.5, QString(), std::map(), 0.01, false, {}, steerKPButton, false, false); } else if (param == "SteerLatAccel") { std::vector steerLatAccelButton{"Reset"}; - lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, parent->latAccelFactor * 0.5, parent->latAccelFactor * 1.5, QString(), std::map(), 0.01, false, {}, steerLatAccelButton, false, false); + lateralToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, parent->latAccelFactor * 0.5, parent->latAccelFactor * 1.5, QString(), std::map(), 0.01, false, {}, steerLatAccelButton, false, false); } else if (param == "SteerRatio") { std::vector steerRatioButton{"Reset"}; - lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, parent->steerRatio * 0.5, parent->steerRatio * 1.5, QString(), std::map(), 0.01, false, {}, steerRatioButton, false, false); + lateralToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, parent->steerRatio * 0.5, parent->steerRatio * 1.5, QString(), std::map(), 0.01, false, {}, steerRatioButton, false, false); } else if (param == "AlwaysOnLateral") { - FrogPilotManageControl *aolToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(aolToggle, &FrogPilotManageControl::manageButtonClicked, [lateralLayout, aolPanel]() { + StarPilotManageControl *aolToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(aolToggle, &StarPilotManageControl::manageButtonClicked, [lateralLayout, aolPanel]() { lateralLayout->setCurrentWidget(aolPanel); }); lateralToggle = aolToggle; } else if (param == "PauseAOLOnBrake") { - lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, QString(), std::map(), 1, true); + lateralToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 99, QString(), std::map(), 1, true); } else if (param == "LaneChanges") { - FrogPilotManageControl *laneChangeToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(laneChangeToggle, &FrogPilotManageControl::manageButtonClicked, [lateralLayout, laneChangePanel]() { + StarPilotManageControl *laneChangeToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(laneChangeToggle, &StarPilotManageControl::manageButtonClicked, [lateralLayout, laneChangePanel]() { lateralLayout->setCurrentWidget(laneChangePanel); }); lateralToggle = laneChangeToggle; @@ -106,29 +106,29 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bo for (float i = 0; i <= 5; i += 0.1) { laneChangeTimeLabels[i] = i == 0 ? tr("Instant") : std::lround(i / 0.1) == 1 / 0.1 ? QString::number(i, 'f', 1) + tr(" second") : QString::number(i, 'f', 1) + tr(" seconds"); } - lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 5, QString(), laneChangeTimeLabels, 0.1); + lateralToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 5, QString(), laneChangeTimeLabels, 0.1); } else if (param == "LaneDetectionWidth") { - lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 15, QString(), std::map(), 0.1, true); + lateralToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 15, QString(), std::map(), 0.1, true); } else if (param == "MinimumLaneChangeSpeed") { - lateralToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, QString(), std::map(), 1, true); + lateralToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 99, QString(), std::map(), 1, true); } else if (param == "LateralTune") { - FrogPilotManageControl *lateralTuneToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(lateralTuneToggle, &FrogPilotManageControl::manageButtonClicked, [lateralLayout, lateralTunePanel]() { + StarPilotManageControl *lateralTuneToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(lateralTuneToggle, &StarPilotManageControl::manageButtonClicked, [lateralLayout, lateralTunePanel]() { lateralLayout->setCurrentWidget(lateralTunePanel); }); lateralToggle = lateralTuneToggle; } else if (param == "QOLLateral") { - FrogPilotManageControl *qolLateralToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(qolLateralToggle, &FrogPilotManageControl::manageButtonClicked, [lateralLayout, qolPanel]() { + StarPilotManageControl *qolLateralToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(qolLateralToggle, &StarPilotManageControl::manageButtonClicked, [lateralLayout, qolPanel]() { lateralLayout->setCurrentWidget(qolPanel); }); lateralToggle = qolLateralToggle; } else if (param == "PauseLateralSpeed") { std::vector pauseLateralToggles{"PauseLateralOnSignal"}; std::vector pauseLateralToggleNames{tr("Turn Signal Only")}; - lateralToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0, 99, QString(), std::map(), 1, true, pauseLateralToggles, pauseLateralToggleNames, true); + lateralToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, 0, 99, QString(), std::map(), 1, true, pauseLateralToggles, pauseLateralToggleNames, true); } else { lateralToggle = new ParamControl(param, title, desc, icon); @@ -152,8 +152,8 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bo parentKeys.insert(param); } - if (FrogPilotManageControl *frogPilotManageToggle = qobject_cast(lateralToggle)) { - QObject::connect(frogPilotManageToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + if (StarPilotManageControl *frogPilotManageToggle = qobject_cast(lateralToggle)) { + QObject::connect(frogPilotManageToggle, &StarPilotManageControl::manageButtonClicked, [this]() { emit openSubPanel(); openDescriptions(forceOpenDescriptions, toggles); }); @@ -169,7 +169,7 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bo QSet forceUpdateKeys = {"ForceAutoTune", "ForceAutoTuneOff", "LateralTune", "NNFF", "NudgelessLaneChange"}; for (const QString &key : forceUpdateKeys) { - QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, this, &FrogPilotLateralPanel::updateToggles); + QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, this, &StarPilotLateralPanel::updateToggles); } QSet rebootKeys = {"AlwaysOnLateral", "ForceTorqueController", "NNFF", "NNFFLite"}; @@ -177,11 +177,11 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bo QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, [key, this](bool state) { if (started) { if (key == "AlwaysOnLateral" && state) { - if (FrogPilotConfirmationDialog::toggleReboot(this)) { + if (StarPilotConfirmationDialog::toggleReboot(this)) { Hardware::reboot(); } } else if (key != "AlwaysOnLateral") { - if (FrogPilotConfirmationDialog::toggleReboot(this)) { + if (StarPilotConfirmationDialog::toggleReboot(this)) { Hardware::reboot(); } } @@ -189,41 +189,41 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bo }); } - steerDelayToggle = static_cast(toggles["SteerDelay"]); - QObject::connect(steerDelayToggle, &FrogPilotParamValueButtonControl::buttonClicked, [parent, this]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Reset Actuator Delay to its default value?"), this)) { + steerDelayToggle = static_cast(toggles["SteerDelay"]); + QObject::connect(steerDelayToggle, &StarPilotParamValueButtonControl::buttonClicked, [parent, this]() { + if (StarPilotConfirmationDialog::yesorno(tr("Reset Actuator Delay to its default value?"), this)) { params.putFloat("SteerDelay", parent->steerActuatorDelay); steerDelayToggle->refresh(); } }); - steerFrictionToggle = static_cast(toggles["SteerFriction"]); - QObject::connect(steerFrictionToggle, &FrogPilotParamValueButtonControl::buttonClicked, [parent, this]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Reset Friction to its default value?"), this)) { + steerFrictionToggle = static_cast(toggles["SteerFriction"]); + QObject::connect(steerFrictionToggle, &StarPilotParamValueButtonControl::buttonClicked, [parent, this]() { + if (StarPilotConfirmationDialog::yesorno(tr("Reset Friction to its default value?"), this)) { params.putFloat("SteerFriction", parent->friction); steerFrictionToggle->refresh(); } }); - steerKPToggle = static_cast(toggles["SteerKP"]); - QObject::connect(steerKPToggle, &FrogPilotParamValueButtonControl::buttonClicked, [parent, this]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Reset Kp Factor to its default value?"), this)) { + steerKPToggle = static_cast(toggles["SteerKP"]); + QObject::connect(steerKPToggle, &StarPilotParamValueButtonControl::buttonClicked, [parent, this]() { + if (StarPilotConfirmationDialog::yesorno(tr("Reset Kp Factor to its default value?"), this)) { params.putFloat("SteerKP", parent->steerKp); steerKPToggle->refresh(); } }); - steerLatAccelToggle = static_cast(toggles["SteerLatAccel"]); - QObject::connect(steerLatAccelToggle, &FrogPilotParamValueButtonControl::buttonClicked, [parent, this]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Reset Lateral Accel to its default value?"), this)) { + steerLatAccelToggle = static_cast(toggles["SteerLatAccel"]); + QObject::connect(steerLatAccelToggle, &StarPilotParamValueButtonControl::buttonClicked, [parent, this]() { + if (StarPilotConfirmationDialog::yesorno(tr("Reset Lateral Accel to its default value?"), this)) { params.putFloat("SteerLatAccel", parent->latAccelFactor); steerLatAccelToggle->refresh(); } }); - steerRatioToggle = static_cast(toggles["SteerRatio"]); - QObject::connect(steerRatioToggle, &FrogPilotParamValueButtonControl::buttonClicked, [parent, this]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Reset Steer Ratio to its default value?"), this)) { + steerRatioToggle = static_cast(toggles["SteerRatio"]); + QObject::connect(steerRatioToggle, &StarPilotParamValueButtonControl::buttonClicked, [parent, this]() { + if (StarPilotConfirmationDialog::yesorno(tr("Reset Steer Ratio to its default value?"), this)) { params.putFloat("SteerRatio", parent->steerRatio); steerRatioToggle->refresh(); } @@ -231,15 +231,15 @@ FrogPilotLateralPanel::FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bo openDescriptions(forceOpenDescriptions, toggles); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [lateralLayout, lateralPanel, this] { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [lateralLayout, lateralPanel, this] { openDescriptions(forceOpenDescriptions, toggles); lateralLayout->setCurrentWidget(lateralPanel); }); - QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, this, &FrogPilotLateralPanel::updateMetric); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotLateralPanel::updateState); + QObject::connect(parent, &StarPilotSettingsWindow::updateMetric, this, &StarPilotLateralPanel::updateMetric); + QObject::connect(uiState(), &UIState::uiUpdate, this, &StarPilotLateralPanel::updateState); } -void FrogPilotLateralPanel::showEvent(QShowEvent *event) { +void StarPilotLateralPanel::showEvent(QShowEvent *event) { steerDelayToggle->setTitle(QString(tr("Actuator Delay (Default: %1)")).arg(QString::number(parent->steerActuatorDelay, 'f', 2))); steerFrictionToggle->setTitle(QString(tr("Friction (Default: %1)")).arg(QString::number(parent->friction, 'f', 2))); steerKPToggle->setTitle(QString(tr("Kp Factor (Default: %1)")).arg(QString::number(parent->steerKp, 'f', 2))); @@ -252,13 +252,13 @@ void FrogPilotLateralPanel::showEvent(QShowEvent *event) { updateToggles(); } -void FrogPilotLateralPanel::updateState(const UIState &s) { +void StarPilotLateralPanel::updateState(const UIState &s) { if (!isVisible()) return; started = s.scene.started; } -void FrogPilotLateralPanel::updateMetric(bool metric, bool bootRun) { +void StarPilotLateralPanel::updateMetric(bool metric, bool bootRun) { static bool previousMetric; if (metric != previousMetric && !bootRun) { double distanceConversion = metric ? FOOT_TO_METER : METER_TO_FOOT; @@ -300,10 +300,10 @@ void FrogPilotLateralPanel::updateMetric(bool metric, bool bootRun) { labelsInitialized = true; } - FrogPilotParamValueControl *laneWidthToggle = static_cast(toggles["LaneDetectionWidth"]); - FrogPilotParamValueControl *minimumLaneChangeSpeedToggle = static_cast(toggles["MinimumLaneChangeSpeed"]); - FrogPilotParamValueControl *pauseAOLOnBrakeToggle = static_cast(toggles["PauseAOLOnBrake"]); - FrogPilotParamValueControl *pauseLateralToggle = static_cast(toggles["PauseLateralSpeed"]); + StarPilotParamValueControl *laneWidthToggle = static_cast(toggles["LaneDetectionWidth"]); + StarPilotParamValueControl *minimumLaneChangeSpeedToggle = static_cast(toggles["MinimumLaneChangeSpeed"]); + StarPilotParamValueControl *pauseAOLOnBrakeToggle = static_cast(toggles["PauseAOLOnBrake"]); + StarPilotParamValueControl *pauseLateralToggle = static_cast(toggles["PauseLateralSpeed"]); if (metric) { laneWidthToggle->updateControl(0, 5, metricDistanceLabels); @@ -320,7 +320,7 @@ void FrogPilotLateralPanel::updateMetric(bool metric, bool bootRun) { } } -void FrogPilotLateralPanel::updateToggles() { +void StarPilotLateralPanel::updateToggles() { for (auto &[key, toggle] : toggles) { if (parentKeys.contains(key)) { toggle->setVisible(false); @@ -337,7 +337,7 @@ void FrogPilotLateralPanel::updateToggles() { continue; } - bool setVisible = parent->tuningLevel >= parent->frogpilotToggleLevels[key].toDouble(); + bool setVisible = parent->tuningLevel >= parent->starpilotToggleLevels[key].toDouble(); if (key == "AlwaysOnLateralLKAS") { setVisible &= parent->lkasAllowedForAOL; diff --git a/frogpilot/ui/qt/offroad/lateral_settings.h b/starpilot/ui/qt/offroad/lateral_settings.h similarity index 65% rename from frogpilot/ui/qt/offroad/lateral_settings.h rename to starpilot/ui/qt/offroad/lateral_settings.h index 08117e37..7c4b743f 100644 --- a/frogpilot/ui/qt/offroad/lateral_settings.h +++ b/starpilot/ui/qt/offroad/lateral_settings.h @@ -1,12 +1,12 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotLateralPanel : public FrogPilotListWidget { +class StarPilotLateralPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotLateralPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotLateralPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); signals: void openSubPanel(); @@ -32,13 +32,13 @@ private: QSet parentKeys; - FrogPilotParamValueButtonControl *steerDelayToggle; - FrogPilotParamValueButtonControl *steerFrictionToggle; - FrogPilotParamValueButtonControl *steerLatAccelToggle; - FrogPilotParamValueButtonControl *steerKPToggle; - FrogPilotParamValueButtonControl *steerRatioToggle; + StarPilotParamValueButtonControl *steerDelayToggle; + StarPilotParamValueButtonControl *steerFrictionToggle; + StarPilotParamValueButtonControl *steerLatAccelToggle; + StarPilotParamValueButtonControl *steerKPToggle; + StarPilotParamValueButtonControl *steerRatioToggle; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; Params params; }; diff --git a/frogpilot/ui/qt/offroad/longitudinal_settings.cc b/starpilot/ui/qt/offroad/longitudinal_settings.cc similarity index 84% rename from frogpilot/ui/qt/offroad/longitudinal_settings.cc rename to starpilot/ui/qt/offroad/longitudinal_settings.cc index 79a81e35..3de1e7e8 100644 --- a/frogpilot/ui/qt/offroad/longitudinal_settings.cc +++ b/starpilot/ui/qt/offroad/longitudinal_settings.cc @@ -1,6 +1,6 @@ -#include "frogpilot/ui/qt/offroad/longitudinal_settings.h" +#include "starpilot/ui/qt/offroad/longitudinal_settings.h" -FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotLongitudinalPanel::StarPilotLongitudinalPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; networkManager = new QNetworkAccessManager(this); @@ -8,31 +8,31 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * QStackedLayout *longitudinalLayout = new QStackedLayout(); addItem(longitudinalLayout); - FrogPilotListWidget *longitudinalList = new FrogPilotListWidget(this); + StarPilotListWidget *longitudinalList = new StarPilotListWidget(this); ScrollView *longitudinalPanel = new ScrollView(longitudinalList, this); longitudinalLayout->addWidget(longitudinalPanel); - FrogPilotListWidget *advancedLongitudinalTuneList = new FrogPilotListWidget(this); - FrogPilotListWidget *aggressivePersonalityList = new FrogPilotListWidget(this); - FrogPilotListWidget *conditionalExperimentalList = new FrogPilotListWidget(this); - FrogPilotListWidget *curveSpeedList = new FrogPilotListWidget(this); - FrogPilotListWidget *customDrivingPersonalityList = new FrogPilotListWidget(this); - FrogPilotListWidget *longitudinalTuneList = new FrogPilotListWidget(this); - FrogPilotListWidget *qolList = new FrogPilotListWidget(this); - FrogPilotListWidget *relaxedPersonalityList = new FrogPilotListWidget(this); - FrogPilotListWidget *speedLimitControllerList = new FrogPilotListWidget(this); - FrogPilotListWidget *speedLimitControllerOffsetsList = new FrogPilotListWidget(this); - FrogPilotListWidget *speedLimitControllerQOLList = new FrogPilotListWidget(this); - FrogPilotListWidget *speedLimitControllerVisualList = new FrogPilotListWidget(this); - FrogPilotListWidget *standardPersonalityList = new FrogPilotListWidget(this); - FrogPilotListWidget *trafficPersonalityList = new FrogPilotListWidget(this); - FrogPilotListWidget *weatherList = new FrogPilotListWidget(this); - FrogPilotListWidget *weatherLowVisibilityList = new FrogPilotListWidget(this); - FrogPilotListWidget *weatherRainList = new FrogPilotListWidget(this); - FrogPilotListWidget *weatherRainStormList = new FrogPilotListWidget(this); - FrogPilotListWidget *weatherSnowList = new FrogPilotListWidget(this); + StarPilotListWidget *advancedLongitudinalTuneList = new StarPilotListWidget(this); + StarPilotListWidget *aggressivePersonalityList = new StarPilotListWidget(this); + StarPilotListWidget *conditionalExperimentalList = new StarPilotListWidget(this); + StarPilotListWidget *curveSpeedList = new StarPilotListWidget(this); + StarPilotListWidget *customDrivingPersonalityList = new StarPilotListWidget(this); + StarPilotListWidget *longitudinalTuneList = new StarPilotListWidget(this); + StarPilotListWidget *qolList = new StarPilotListWidget(this); + StarPilotListWidget *relaxedPersonalityList = new StarPilotListWidget(this); + StarPilotListWidget *speedLimitControllerList = new StarPilotListWidget(this); + StarPilotListWidget *speedLimitControllerOffsetsList = new StarPilotListWidget(this); + StarPilotListWidget *speedLimitControllerQOLList = new StarPilotListWidget(this); + StarPilotListWidget *speedLimitControllerVisualList = new StarPilotListWidget(this); + StarPilotListWidget *standardPersonalityList = new StarPilotListWidget(this); + StarPilotListWidget *trafficPersonalityList = new StarPilotListWidget(this); + StarPilotListWidget *weatherList = new StarPilotListWidget(this); + StarPilotListWidget *weatherLowVisibilityList = new StarPilotListWidget(this); + StarPilotListWidget *weatherRainList = new StarPilotListWidget(this); + StarPilotListWidget *weatherRainStormList = new StarPilotListWidget(this); + StarPilotListWidget *weatherSnowList = new StarPilotListWidget(this); ScrollView *advancedLongitudinalTunePanel = new ScrollView(advancedLongitudinalTuneList, this); ScrollView *aggressivePersonalityPanel = new ScrollView(aggressivePersonalityList, this); @@ -75,7 +75,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * longitudinalLayout->addWidget(weatherSnowPanel); const std::vector> longitudinalToggles { - {"AdvancedLongitudinalTune", tr("Advanced Longitudinal Tuning"), tr("Advanced acceleration and braking control changes to fine-tune how openpilot drives."), "../../frogpilot/assets/toggle_icons/icon_advanced_longitudinal_tune.png"}, + {"AdvancedLongitudinalTune", tr("Advanced Longitudinal Tuning"), tr("Advanced acceleration and braking control changes to fine-tune how openpilot drives."), "../../starpilot/assets/toggle_icons/icon_advanced_longitudinal_tune.png"}, {"EVTuning", tr("EV Tuning"), tr("Use acceleration profiles tuned for EVs. Defaults to the vehicle's detected powertrain type but can be overridden if the automatic choice doesn't match."), ""}, {"TruckTuning", tr("Truck Tuning"), tr("Use aggressive acceleration profiles tuned for trucks. Intended for heavy vehicles that need stronger throttle."), ""}, {"LongitudinalActuatorDelay", parent->longitudinalActuatorDelay != 0 ? QString(tr("Actuator Delay (Default: %1)")).arg(QString::number(parent->longitudinalActuatorDelay, 'f', 2)) : tr("Actuator Delay"), tr("The time between openpilot's throttle or brake command and the vehicle's response. Increase if the vehicle feels slow to react; decrease if it feels too eager or overshoots."), ""}, @@ -86,7 +86,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * {"StoppingDecelRate", parent->stoppingDecelRate != 0 ? QString(tr("Stopping Rate (Default: %1)")).arg(QString::number(parent->stoppingDecelRate, 'f', 2)) : tr("Stopping Rate"), tr("How quickly braking ramps up when stopping. Increase for shorter, firmer stops; decrease for smoother, longer stops."), ""}, {"VEgoStopping", parent->vEgoStopping != 0 ? QString(tr("Stop Speed (Default: %1)")).arg(QString::number(parent->vEgoStopping, 'f', 2)) : tr("Stop Speed"), tr("The speed at which openpilot considers the vehicle stopped. Increase to brake earlier and stop smoothly; decrease to wait longer but risk overshooting."), ""}, - {"ConditionalExperimental", tr("Conditional Experimental Mode"), tr("Automatically switch to \"Experimental Mode\" when set conditions are met. Allows the model to handle challenging situations with smarter decision making."), "../../frogpilot/assets/toggle_icons/icon_conditional.png"}, + {"ConditionalExperimental", tr("Conditional Experimental Mode"), tr("Automatically switch to \"Experimental Mode\" when set conditions are met. Allows the model to handle challenging situations with smarter decision making."), "../../starpilot/assets/toggle_icons/icon_conditional.png"}, {"CESpeed", tr("Below"), tr("Switch to \"Experimental Mode\" when driving below this speed without a lead to help openpilot handle low-speed situations more smoothly."), ""}, {"CECurves", tr("Curve Detected Ahead"), tr("Switch to \"Experimental Mode\" when a curve is detected to allow the model to set an appropriate speed for the curve."), ""}, {"CEStopLights", tr("\"Detected\" Stop Lights/Signs"), tr("Switch to \"Experimental Mode\" whenever the driving model \"detects\" a red light or stop sign.

Disclaimer: openpilot does not explicitly detect traffic lights or stop signs. In \"Experimental Mode\", openpilot makes end-to-end driving decisions from camera input, which means it may stop even when there's no clear reason!"), ""}, @@ -95,15 +95,15 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * {"CESignalSpeed", tr("Turn Signal Below"), tr("Switch to \"Experimental Mode\" when using a turn signal below the set speed to allow the model to choose an appropriate speed for smoother left and right turns."), ""}, {"ShowCEMStatus", tr("Status Widget"), tr("Show which condition triggered \"Experimental Mode\" on the driving screen."), ""}, - {"CurveSpeedController", tr("Curve Speed Controller"), tr("Automatically slow down for upcoming curves using data learned from your driving style, adapting to curves as you would."), "../../frogpilot/assets/toggle_icons/icon_speed_map.png"}, + {"CurveSpeedController", tr("Curve Speed Controller"), tr("Automatically slow down for upcoming curves using data learned from your driving style, adapting to curves as you would."), "../../starpilot/assets/toggle_icons/icon_speed_map.png"}, {"CalibratedLateralAcceleration", tr("Calibrated Lateral Acceleration"), tr("The learned lateral acceleration from collected driving data. This sets how fast openpilot will take curves. Higher values allow faster cornering; lower values slow the vehicle for gentler turns."), ""}, {"CalibrationProgress", tr("Calibration Progress"), tr("How much curve data has been collected. This is a progress meter; it is normal for the value to stay low and rarely reach 100%."), ""}, {"ResetCurveData", tr("Reset Curve Data"), tr("Reset collected user data for \"Curve Speed Controller\"."), ""}, {"ShowCSCStatus", tr("Status Widget"), tr("Show the \"Curve Speed Controller\" target speed on the driving screen."), ""}, - {"CustomPersonalities", tr("Driving Personalities"), tr("Customize the \"Driving Personalities\" to better match your driving style."), "../../frogpilot/assets/toggle_icons/icon_personality.png"}, + {"CustomPersonalities", tr("Driving Personalities"), tr("Customize the \"Driving Personalities\" to better match your driving style."), "../../starpilot/assets/toggle_icons/icon_personality.png"}, - {"TrafficPersonalityProfile", tr("Traffic Mode"), tr("Customize the \"Traffic Mode\" personality profile. Designed for stop-and-go driving."), "../../frogpilot/assets/stock_theme/distance_icons/traffic.png"}, + {"TrafficPersonalityProfile", tr("Traffic Mode"), tr("Customize the \"Traffic Mode\" personality profile. Designed for stop-and-go driving."), "../../starpilot/assets/stock_theme/distance_icons/traffic.png"}, {"TrafficFollow", tr("Following Distance"), tr("The minimum following distance to the lead vehicle in \"Traffic Mode\". openpilot blends between this value and the \"Aggressive\" profile as speed increases. Increase for more space; decrease for tighter gaps."), ""}, {"TrafficJerkAcceleration", tr("Acceleration Smoothness"), tr("How smoothly openpilot accelerates in \"Traffic Mode\". Increase for gentler starts; decrease for faster but more abrupt takeoffs."), ""}, {"TrafficJerkDeceleration", tr("Braking Smoothness"), tr("How smoothly openpilot brakes in \"Traffic Mode\". Increase for gentler stops; decrease for quicker but sharper braking."), ""}, @@ -112,7 +112,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * {"TrafficJerkSpeed", tr("Speed-Up Response"), tr("How smoothly openpilot speeds up in \"Traffic Mode\". Increase for more gradual acceleration; decrease for quicker but more jolting acceleration."), ""}, {"ResetTrafficPersonality", tr("Reset to Defaults"), tr("Reset \"Traffic Mode\" settings to defaults."), ""}, - {"AggressivePersonalityProfile", tr("Aggressive"), tr("Customize the \"Aggressive\" personality profile. Designed for assertive driving with tighter gaps."), "../../frogpilot/assets/stock_theme/distance_icons/aggressive.png"}, + {"AggressivePersonalityProfile", tr("Aggressive"), tr("Customize the \"Aggressive\" personality profile. Designed for assertive driving with tighter gaps."), "../../starpilot/assets/stock_theme/distance_icons/aggressive.png"}, {"AggressiveFollow", tr("Following Distance"), tr("How many seconds openpilot follows behind lead vehicles when using the \"Aggressive\" profile. Increase for more space; decrease for tighter gaps.

Default: 1.25 seconds."), ""}, {"AggressiveFollowHigh", tr("High Speed Following Distance"), tr("Following distance for higher speeds in the \"Aggressive\" profile. openpilot smoothly blends from the base value to this value as speed rises."), ""}, {"AggressiveJerkAcceleration", tr("Acceleration Smoothness"), tr("How smoothly openpilot accelerates with the \"Aggressive\" profile. Increase for gentler starts; decrease for faster but more abrupt takeoffs."), ""}, @@ -122,7 +122,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * {"AggressiveJerkSpeed", tr("Speed-Up Response"), tr("How smoothly openpilot speeds up with the \"Aggressive\" profile. Increase for more gradual acceleration; decrease for quicker but more jolting acceleration."), ""}, {"ResetAggressivePersonality", tr("Reset to Defaults"), tr("Reset the \"Aggressive\" profile to defaults."), ""}, - {"StandardPersonalityProfile", tr("Standard"), tr("Customize the \"Standard\" personality profile. Designed for balanced driving with moderate gaps."), "../../frogpilot/assets/stock_theme/distance_icons/standard.png"}, + {"StandardPersonalityProfile", tr("Standard"), tr("Customize the \"Standard\" personality profile. Designed for balanced driving with moderate gaps."), "../../starpilot/assets/stock_theme/distance_icons/standard.png"}, {"StandardFollow", tr("Following Distance"), tr("How many seconds openpilot follows behind lead vehicles when using the \"Standard\" profile. Increase for more space; decrease for tighter gaps.

Default: 1.45 seconds."), ""}, {"StandardFollowHigh", tr("High Speed Following Distance"), tr("Following distance for higher speeds in the \"Standard\" profile. openpilot smoothly blends from the base value to this value as speed rises."), ""}, {"StandardJerkAcceleration", tr("Acceleration Smoothness"), tr("How smoothly openpilot accelerates with the \"Standard\" profile. Increase for gentler starts; decrease for faster but more abrupt takeoffs."), ""}, @@ -132,7 +132,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * {"StandardJerkSpeed", tr("Speed-Up Response"), tr("How smoothly openpilot speeds up with the \"Standard\" profile. Increase for more gradual acceleration; decrease for quicker but more jolting acceleration."), ""}, {"ResetStandardPersonality", tr("Reset to Defaults"), tr("Reset the \"Standard\" profile to defaults."), ""}, - {"RelaxedPersonalityProfile", tr("Relaxed"), tr("Customize the \"Relaxed\" personality profile. Designed for smoother, more comfortable driving with larger gaps."), "../../frogpilot/assets/stock_theme/distance_icons/relaxed.png"}, + {"RelaxedPersonalityProfile", tr("Relaxed"), tr("Customize the \"Relaxed\" personality profile. Designed for smoother, more comfortable driving with larger gaps."), "../../starpilot/assets/stock_theme/distance_icons/relaxed.png"}, {"RelaxedFollow", tr("Following Distance"), tr("How many seconds openpilot follows behind lead vehicles when using the \"Relaxed\" profile. Increase for more space; decrease for tighter gaps.

Default: 1.75 seconds."), ""}, {"RelaxedFollowHigh", tr("High Speed Following Distance"), tr("Following distance for higher speeds in the \"Relaxed\" profile. openpilot smoothly blends from the base value to this value as speed rises."), ""}, {"RelaxedJerkAcceleration", tr("Acceleration Smoothness"), tr("How smoothly openpilot accelerates with the \"Relaxed\" profile. Increase for gentler starts; decrease for faster but more abrupt takeoffs."), ""}, @@ -142,7 +142,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * {"RelaxedJerkSpeed", tr("Speed-Up Response"), tr("How smoothly openpilot speeds up with the \"Relaxed\" profile. Increase for more gradual acceleration; decrease for quicker but more jolting acceleration."), ""}, {"ResetRelaxedPersonality", tr("Reset to Defaults"), tr("Reset the \"Relaxed\" profile to defaults."), ""}, - {"LongitudinalTune", tr("Longitudinal Tuning"), tr("Acceleration and braking control changes to fine-tune how openpilot drives."), "../../frogpilot/assets/toggle_icons/icon_longitudinal_tune.png"}, + {"LongitudinalTune", tr("Longitudinal Tuning"), tr("Acceleration and braking control changes to fine-tune how openpilot drives."), "../../starpilot/assets/toggle_icons/icon_longitudinal_tune.png"}, {"AccelerationProfile", tr("Acceleration Profile"), tr("How quickly openpilot speeds up. \"Eco\" is gentle and efficient, \"Sport\" is firmer and more responsive, and \"Sport+\" accelerates at the maximum rate allowed."), ""}, {"DecelerationProfile", tr("Deceleration Profile"), tr("How firmly openpilot slows down. \"Eco\" favors coasting, \"Sport\" applies stronger braking."), ""}, {"HumanAcceleration", tr("Human-Like Acceleration"), tr("Acceleration that mimics human behavior by easing the throttle at low speeds and adding extra power when taking off from a stop."), ""}, @@ -151,7 +151,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * {"LeadDetectionThreshold", tr("Lead Detection Sensitivity"), tr("How sensitive openpilot is to detecting vehicles. Higher sensitivity allows quicker detection at longer distances but may react to non-vehicle objects; lower sensitivity is more conservative and reduces false detections."), ""}, {"TacoTune", tr("\"Taco Bell Run\" Turn Speed Hack"), tr("The turn-speed hack from comma's 2022 \"Taco Bell Run\". Designed to slow down for left and right turns."), ""}, - {"QOLLongitudinal", tr("Quality of Life"), tr("Miscellaneous acceleration and braking control changes to fine-tune how openpilot drives."), "../../frogpilot/assets/toggle_icons/icon_quality_of_life.png"}, + {"QOLLongitudinal", tr("Quality of Life"), tr("Miscellaneous acceleration and braking control changes to fine-tune how openpilot drives."), "../../starpilot/assets/toggle_icons/icon_quality_of_life.png"}, {"CustomCruise", tr("Cruise Interval"), tr("How much the set speed increases or decreases for each + or – cruise control button press."), ""}, {"CustomCruiseLong", tr("Cruise Interval (Hold)"), tr("How much the set speed increases or decreases while holding the + or – cruise control buttons."), ""}, {"ForceStops", tr("Force Stop at \"Detected\" Stop Lights/Signs"), tr("Force openpilot to stop whenever the driving model \"detects\" a red light or stop sign.

Disclaimer: openpilot does not explicitly detect traffic lights or stop signs. In \"Experimental Mode\", openpilot makes end-to-end driving decisions from camera input, which means it may stop even when there's no clear reason!"), ""}, @@ -187,7 +187,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * {"SetWeatherKey", tr("Set Your Own Key"), tr("Set your own \"OpenWeatherMap\" key to increase the weather update rate.

Personal keys grant 1,000 free calls per day, allowing for updates every minute. The default key is shared and only updates every 15 minutes."), ""}, - {"SpeedLimitController", tr("Speed Limit Controller"), tr("Limit openpilot's maximum driving speed to the current speed limit obtained from downloaded maps, Mapbox, or the dashboard for supported vehicles (Ford, Genesis, Hyundai, Kia, Lexus, Toyota)."), "../../frogpilot/assets/toggle_icons/icon_speed_limit.png"}, + {"SpeedLimitController", tr("Speed Limit Controller"), tr("Limit openpilot's maximum driving speed to the current speed limit obtained from downloaded maps, Mapbox, or the dashboard for supported vehicles (Ford, Genesis, Hyundai, Kia, Lexus, Toyota)."), "../../starpilot/assets/toggle_icons/icon_speed_limit.png"}, {"SLCFallback", tr("Fallback Speed"), tr("The speed used by \"Speed Limit Controller\" when no speed limit is found.

- Set Speed: Use the cruise set speed
- Experimental Mode: Estimate the limit using the driving model
- Previous Limit: Keep using the last confirmed limit"), ""}, {"SLCOverride", tr("Override Speed"), tr("The speed used by \"Speed Limit Controller\" after you manually drive faster than the posted limit.

- Set with Gas Pedal: Use the highest speed reached while pressing the gas
- Max Set Speed: Use the cruise set speed

Overrides clear when openpilot disengages."), ""}, {"SLCQOL", tr("Quality of Life"), tr("Miscellaneous \"Speed Limit Controller\" changes to fine-tune how openpilot drives."), ""}, @@ -214,65 +214,65 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * AbstractControl *longitudinalToggle; if (param == "AdvancedLongitudinalTune") { - FrogPilotManageControl *advancedLongitudinalTuneToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(advancedLongitudinalTuneToggle, &FrogPilotManageControl::manageButtonClicked, [longitudinalLayout, advancedLongitudinalTunePanel]() { + StarPilotManageControl *advancedLongitudinalTuneToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(advancedLongitudinalTuneToggle, &StarPilotManageControl::manageButtonClicked, [longitudinalLayout, advancedLongitudinalTunePanel]() { longitudinalLayout->setCurrentWidget(advancedLongitudinalTunePanel); }); longitudinalToggle = advancedLongitudinalTuneToggle; } else if (param == "LongitudinalActuatorDelay") { - longitudinalActuatorDelayToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 1, tr(" seconds"), std::map(), 0.01); + longitudinalActuatorDelayToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 1, tr(" seconds"), std::map(), 0.01); longitudinalToggle = longitudinalActuatorDelayToggle; } else if (param == "MaxDesiredAcceleration") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0.1, 4.0, tr(" m/s²"), std::map(), 0.1); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0.1, 4.0, tr(" m/s²"), std::map(), 0.1); } else if (param == "StartAccel") { - startAccelToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 4, tr(" m/s²"), std::map(), 0.01, true); + startAccelToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 4, tr(" m/s²"), std::map(), 0.01, true); longitudinalToggle = startAccelToggle; } else if (param == "VEgoStarting") { - vEgoStartingToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0.01, 1, tr(" m/s²"), std::map(), 0.01); + vEgoStartingToggle = new StarPilotParamValueControl(param, title, desc, icon, 0.01, 1, tr(" m/s²"), std::map(), 0.01); longitudinalToggle = vEgoStartingToggle; } else if (param == "StopAccel") { - stopAccelToggle = new FrogPilotParamValueControl(param, title, desc, icon, -4, 0, tr(" m/s²"), std::map(), 0.01, true); + stopAccelToggle = new StarPilotParamValueControl(param, title, desc, icon, -4, 0, tr(" m/s²"), std::map(), 0.01, true); longitudinalToggle = stopAccelToggle; } else if (param == "StoppingDecelRate") { - stoppingDecelRateToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0.001, 1, tr(" m/s²"), std::map(), 0.001, true); + stoppingDecelRateToggle = new StarPilotParamValueControl(param, title, desc, icon, 0.001, 1, tr(" m/s²"), std::map(), 0.001, true); longitudinalToggle = stoppingDecelRateToggle; } else if (param == "VEgoStopping") { - vEgoStoppingToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0.01, 1, tr(" m/s²"), std::map(), 0.01); + vEgoStoppingToggle = new StarPilotParamValueControl(param, title, desc, icon, 0.01, 1, tr(" m/s²"), std::map(), 0.01); longitudinalToggle = vEgoStoppingToggle; } else if (param == "ConditionalExperimental") { - FrogPilotManageControl *conditionalExperimentalToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(conditionalExperimentalToggle, &FrogPilotManageControl::manageButtonClicked, [longitudinalLayout, conditionalExperimentalPanel]() { + StarPilotManageControl *conditionalExperimentalToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(conditionalExperimentalToggle, &StarPilotManageControl::manageButtonClicked, [longitudinalLayout, conditionalExperimentalPanel]() { longitudinalLayout->setCurrentWidget(conditionalExperimentalPanel); }); longitudinalToggle = conditionalExperimentalToggle; } else if (param == "CESpeed") { - FrogPilotParamValueControl *CESpeed = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, tr(" mph"), std::map(), 1, true, 175); - FrogPilotParamValueControl *CESpeedLead = new FrogPilotParamValueControl("CESpeedLead", tr("With Lead"), tr("Switch to \"Experimental Mode\" when driving below this speed with a lead to help openpilot handle low-speed situations more smoothly."), icon, 0, 99, tr(" mph"), std::map(), 1, true, 175); - FrogPilotDualParamValueControl *conditionalSpeeds = new FrogPilotDualParamValueControl(CESpeed, CESpeedLead); + StarPilotParamValueControl *CESpeed = new StarPilotParamValueControl(param, title, desc, icon, 0, 99, tr(" mph"), std::map(), 1, true, 175); + StarPilotParamValueControl *CESpeedLead = new StarPilotParamValueControl("CESpeedLead", tr("With Lead"), tr("Switch to \"Experimental Mode\" when driving below this speed with a lead to help openpilot handle low-speed situations more smoothly."), icon, 0, 99, tr(" mph"), std::map(), 1, true, 175); + StarPilotDualParamValueControl *conditionalSpeeds = new StarPilotDualParamValueControl(CESpeed, CESpeedLead); longitudinalToggle = reinterpret_cast(conditionalSpeeds); } else if (param == "CECurves") { std::vector curveToggles{"CECurvesLead"}; std::vector curveToggleNames{tr("With Lead")}; - longitudinalToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, curveToggles, curveToggleNames); + longitudinalToggle = new StarPilotButtonToggleControl(param, title, desc, icon, curveToggles, curveToggleNames); } else if (param == "CELead") { std::vector leadToggles{"CESlowerLead", "CEStoppedLead"}; std::vector leadToggleNames{tr("Slower Lead"), tr("Stopped Lead")}; - longitudinalToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, leadToggles, leadToggleNames); + longitudinalToggle = new StarPilotButtonToggleControl(param, title, desc, icon, leadToggles, leadToggleNames); } else if (param == "CEModelStopTime") { std::map stopTimeLabels; for (int i = 0; i <= 10; ++i) { stopTimeLabels[i] = i == 0 ? tr("Off") : i == 1 ? QString::number(i) + tr(" second") : QString::number(i) + tr(" seconds"); } - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 9, QString(), stopTimeLabels); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 9, QString(), stopTimeLabels); } else if (param == "CESignalSpeed") { std::vector ceSignalToggles{"CESignalLaneDetection"}; std::vector ceSignalToggleNames{tr("Not For Detected Lanes")}; - longitudinalToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0, 99, tr(" mph"), std::map(), 1.0, true, ceSignalToggles, ceSignalToggleNames, true); + longitudinalToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, 0, 99, tr(" mph"), std::map(), 1.0, true, ceSignalToggles, ceSignalToggleNames, true); } else if (param == "CurveSpeedController") { - FrogPilotManageControl *curveControlToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(curveControlToggle, &FrogPilotManageControl::manageButtonClicked, [longitudinalLayout, curveSpeedPanel]() { + StarPilotManageControl *curveControlToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(curveControlToggle, &StarPilotManageControl::manageButtonClicked, [longitudinalLayout, curveSpeedPanel]() { longitudinalLayout->setCurrentWidget(curveSpeedPanel); }); longitudinalToggle = curveControlToggle; @@ -285,7 +285,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } else if (param == "ResetCurveData") { ButtonControl *resetCurveDataButton = new ButtonControl(title, tr("RESET"), desc); QObject::connect(resetCurveDataButton, &ButtonControl::clicked, [this]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your curvature data?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your curvature data?"), this)) { params.putFloat("CalibratedLateralAcceleration", 2.00); params.remove("CalibrationProgress"); params.remove("CurvatureData"); @@ -297,8 +297,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * longitudinalToggle = resetCurveDataButton; } else if (param == "CustomPersonalities") { - FrogPilotManageControl *customPersonalitiesToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(customPersonalitiesToggle, &FrogPilotManageControl::manageButtonClicked, [longitudinalLayout, customDrivingPersonalityPanel]() { + StarPilotManageControl *customPersonalitiesToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(customPersonalitiesToggle, &StarPilotManageControl::manageButtonClicked, [longitudinalLayout, customDrivingPersonalityPanel]() { longitudinalLayout->setCurrentWidget(customDrivingPersonalityPanel); }); longitudinalToggle = customPersonalitiesToggle; @@ -306,8 +306,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * ButtonControl *resetButton = new ButtonControl(title, tr("RESET"), desc); longitudinalToggle = resetButton; } else if (param == "TrafficPersonalityProfile") { - FrogPilotButtonsControl *trafficPersonalityToggle = new FrogPilotButtonsControl(title, desc, icon, {tr("MANAGE")}); - QObject::connect(trafficPersonalityToggle, &FrogPilotButtonsControl::buttonClicked, [longitudinalLayout, trafficPersonalityPanel, this](int id) { + StarPilotButtonsControl *trafficPersonalityToggle = new StarPilotButtonsControl(title, desc, icon, {tr("MANAGE")}); + QObject::connect(trafficPersonalityToggle, &StarPilotButtonsControl::buttonClicked, [longitudinalLayout, trafficPersonalityPanel, this](int id) { openSubSubPanel(); longitudinalLayout->setCurrentWidget(trafficPersonalityPanel); @@ -316,8 +316,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * }); longitudinalToggle = trafficPersonalityToggle; } else if (param == "AggressivePersonalityProfile") { - FrogPilotButtonsControl *aggressivePersonalityToggle = new FrogPilotButtonsControl(title, desc, icon, {tr("MANAGE")}); - QObject::connect(aggressivePersonalityToggle, &FrogPilotButtonsControl::buttonClicked, [longitudinalLayout, aggressivePersonalityPanel, this](int id) { + StarPilotButtonsControl *aggressivePersonalityToggle = new StarPilotButtonsControl(title, desc, icon, {tr("MANAGE")}); + QObject::connect(aggressivePersonalityToggle, &StarPilotButtonsControl::buttonClicked, [longitudinalLayout, aggressivePersonalityPanel, this](int id) { openSubSubPanel(); longitudinalLayout->setCurrentWidget(aggressivePersonalityPanel); @@ -326,8 +326,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * }); longitudinalToggle = aggressivePersonalityToggle; } else if (param == "StandardPersonalityProfile") { - FrogPilotButtonsControl *standardPersonalityToggle = new FrogPilotButtonsControl(title, desc, icon, {tr("MANAGE")}); - QObject::connect(standardPersonalityToggle, &FrogPilotButtonsControl::buttonClicked, [longitudinalLayout, standardPersonalityPanel, this](int id) { + StarPilotButtonsControl *standardPersonalityToggle = new StarPilotButtonsControl(title, desc, icon, {tr("MANAGE")}); + QObject::connect(standardPersonalityToggle, &StarPilotButtonsControl::buttonClicked, [longitudinalLayout, standardPersonalityPanel, this](int id) { openSubSubPanel(); longitudinalLayout->setCurrentWidget(standardPersonalityPanel); @@ -336,8 +336,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * }); longitudinalToggle = standardPersonalityToggle; } else if (param == "RelaxedPersonalityProfile") { - FrogPilotButtonsControl *relaxedPersonalityToggle = new FrogPilotButtonsControl(title, desc, icon, {tr("MANAGE")}); - QObject::connect(relaxedPersonalityToggle, &FrogPilotButtonsControl::buttonClicked, [longitudinalLayout, relaxedPersonalityPanel, this](int id) { + StarPilotButtonsControl *relaxedPersonalityToggle = new StarPilotButtonsControl(title, desc, icon, {tr("MANAGE")}); + QObject::connect(relaxedPersonalityToggle, &StarPilotButtonsControl::buttonClicked, [longitudinalLayout, relaxedPersonalityPanel, this](int id) { openSubSubPanel(); longitudinalLayout->setCurrentWidget(relaxedPersonalityPanel); @@ -353,17 +353,17 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * followTimeLabels[i] = std::lround(i / 0.01) == 1 / 0.01 ? QString::number(i, 'f', 2) + tr(" second") : QString::number(i, 'f', 2) + tr(" seconds"); } if (param == "TrafficFollow") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0.5, 3, QString(), followTimeLabels, 0.01, true); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0.5, 3, QString(), followTimeLabels, 0.01, true); } else { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 3, QString(), followTimeLabels, 0.01, true); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 1, 3, QString(), followTimeLabels, 0.01, true); } } else { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 25, 200, "%"); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 25, 200, "%"); } } else if (param == "LongitudinalTune") { - FrogPilotManageControl *longitudinalTuneToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(longitudinalTuneToggle, &FrogPilotManageControl::manageButtonClicked, [longitudinalLayout, longitudinalTunePanel]() { + StarPilotManageControl *longitudinalTuneToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(longitudinalTuneToggle, &StarPilotManageControl::manageButtonClicked, [longitudinalLayout, longitudinalTunePanel]() { longitudinalLayout->setCurrentWidget(longitudinalTunePanel); }); longitudinalToggle = longitudinalTuneToggle; @@ -376,29 +376,29 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * ButtonParamControl *decelerationProfileToggle = new ButtonParamControl(param, title, desc, icon, decelerationProfiles); longitudinalToggle = decelerationProfileToggle; } else if (param == "LeadDetectionThreshold") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 25, 50, "%"); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 25, 50, "%"); } else if (param == "QOLLongitudinal") { - FrogPilotManageControl *qolLongitudinalToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(qolLongitudinalToggle, &FrogPilotManageControl::manageButtonClicked, [longitudinalLayout, qolPanel]() { + StarPilotManageControl *qolLongitudinalToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(qolLongitudinalToggle, &StarPilotManageControl::manageButtonClicked, [longitudinalLayout, qolPanel]() { longitudinalLayout->setCurrentWidget(qolPanel); }); longitudinalToggle = qolLongitudinalToggle; } else if (param == "CustomCruise") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 99, tr(" mph")); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 1, 99, tr(" mph")); } else if (param == "CustomCruiseLong") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 1, 99, tr(" mph")); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 1, 99, tr(" mph")); } else if (param == "IncreasedStoppedDistance") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" feet")); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" feet")); } else if (param == "MapGears") { std::vector mapGearsToggles{"MapAcceleration", "MapDeceleration"}; std::vector mapGearsToggleNames{tr("Acceleration"), tr("Deceleration")}; - longitudinalToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, mapGearsToggles, mapGearsToggleNames); + longitudinalToggle = new StarPilotButtonToggleControl(param, title, desc, icon, mapGearsToggles, mapGearsToggleNames); } else if (param == "SetSpeedOffset") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, tr(" mph")); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 99, tr(" mph")); } else if (param == "WeatherPresets") { - FrogPilotManageControl *weatherToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(weatherToggle, &FrogPilotManageControl::manageButtonClicked, [longitudinalLayout, weatherPanel, this]() { + StarPilotManageControl *weatherToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(weatherToggle, &StarPilotManageControl::manageButtonClicked, [longitudinalLayout, weatherPanel, this]() { openSubSubPanel(); longitudinalLayout->setCurrentWidget(weatherPanel); @@ -407,11 +407,11 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * }); longitudinalToggle = weatherToggle; } else if (param == "SetWeatherKey") { - weatherKeyControl = new FrogPilotButtonsControl(title, desc, icon, {tr("ADD"), tr("TEST")}); - QObject::connect(weatherKeyControl, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + weatherKeyControl = new StarPilotButtonsControl(title, desc, icon, {tr("ADD"), tr("TEST")}); + QObject::connect(weatherKeyControl, &StarPilotButtonsControl::buttonClicked, [this](int id) { if (id == 0) { if (!params.get("WeatherToken").empty()) { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to remove your key?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to remove your key?"), this)) { params.remove("WeatherToken"); weatherKeyControl->setText(0, tr("ADD")); @@ -515,17 +515,17 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * for (float i = 0; i <= 3; i += 0.01) { followTimeLabels[i] = std::lround(i / 0.01) == 1 / 0.01 ? QString::number(i, 'f', 2) + tr(" second") : QString::number(i, 'f', 2) + tr(" seconds"); } - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 3, QString(), followTimeLabels, 0.01, true); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 3, QString(), followTimeLabels, 0.01, true); } else if (param == "IncreasedStoppedDistanceLowVisibility" || param == "IncreasedStoppedDistanceRain" || param == "IncreasedStoppedDistanceRainStorm" || param == "IncreasedStoppedDistanceSnow") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" feet")); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" feet")); } else if (param == "ReduceAccelerationLowVisibility" || param == "ReduceAccelerationRain" || param == "ReduceAccelerationRainStorm" || param == "ReduceAccelerationSnow") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, "%", std::map(), 1); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 99, "%", std::map(), 1); } else if (param == "ReduceLateralAccelerationLowVisibility" || param == "ReduceLateralAccelerationRain" || param == "ReduceLateralAccelerationRainStorm" || param == "ReduceLateralAccelerationSnow") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 99, "%", std::map(), 1); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 99, "%", std::map(), 1); } else if (param == "SpeedLimitController") { - FrogPilotManageControl *speedLimitControllerToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(speedLimitControllerToggle, &FrogPilotManageControl::manageButtonClicked, [longitudinalLayout, speedLimitControllerPanel]() { + StarPilotManageControl *speedLimitControllerToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(speedLimitControllerToggle, &StarPilotManageControl::manageButtonClicked, [longitudinalLayout, speedLimitControllerPanel]() { longitudinalLayout->setCurrentWidget(speedLimitControllerPanel); }); longitudinalToggle = speedLimitControllerToggle; @@ -604,7 +604,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * }); longitudinalToggle = manageSLCOffsetsButton; } else if (speedLimitControllerOffsetsKeys.contains(param)) { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, -99, 99, tr(" mph")); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, -99, 99, tr(" mph")); } else if (param == "SLCQOL") { ButtonControl *manageSLCQOLButton = new ButtonControl(title, tr("MANAGE"), desc); QObject::connect(manageSLCQOLButton, &ButtonControl::clicked, [longitudinalLayout, speedLimitControllerQOLPanel, this]() { @@ -618,9 +618,9 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } else if (param == "SLCConfirmation") { std::vector confirmationToggles{"SLCConfirmationLower", "SLCConfirmationHigher"}; std::vector confirmationToggleNames{tr("Lower Limits"), tr("Higher Limits")}; - longitudinalToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, confirmationToggles, confirmationToggleNames); + longitudinalToggle = new StarPilotButtonToggleControl(param, title, desc, icon, confirmationToggles, confirmationToggleNames); } else if (param == "SLCLookaheadHigher" || param == "SLCLookaheadLower") { - longitudinalToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 30, tr(" seconds")); + longitudinalToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 30, tr(" seconds")); } else if (param == "SLCVisuals") { ButtonControl *manageSLCVisualsButton = new ButtonControl(title, tr("MANAGE"), desc); QObject::connect(manageSLCVisualsButton, &ButtonControl::clicked, [longitudinalLayout, speedLimitControllerVisualPanel, this]() { @@ -682,8 +682,8 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * parentKeys.insert(param); } - if (FrogPilotManageControl *frogPilotManageToggle = qobject_cast(longitudinalToggle)) { - QObject::connect(frogPilotManageToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + if (StarPilotManageControl *frogPilotManageToggle = qobject_cast(longitudinalToggle)) { + QObject::connect(frogPilotManageToggle, &StarPilotManageControl::manageButtonClicked, [this]() { emit openSubPanel(); openDescriptions(forceOpenDescriptions, toggles); }); @@ -699,7 +699,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * QSet forceUpdateKeys = {"HumanAcceleration", "LongitudinalTune"}; for (const QString &key : forceUpdateKeys) { - QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, this, &FrogPilotLongitudinalPanel::updateToggles); + QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, this, &StarPilotLongitudinalPanel::updateToggles); } QObject::connect(static_cast(toggles["EVTuning"]), &ToggleControl::toggleFlipped, this, [this]() { @@ -715,15 +715,15 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * updateToggles(); }); - FrogPilotParamValueControl *trafficFollowToggle = static_cast(toggles["TrafficFollow"]); - FrogPilotParamValueControl *trafficAccelerationToggle = static_cast(toggles["TrafficJerkAcceleration"]); - FrogPilotParamValueControl *trafficDecelerationToggle = static_cast(toggles["TrafficJerkDeceleration"]); - FrogPilotParamValueControl *trafficDangerToggle = static_cast(toggles["TrafficJerkDanger"]); - FrogPilotParamValueControl *trafficSpeedToggle = static_cast(toggles["TrafficJerkSpeed"]); - FrogPilotParamValueControl *trafficSpeedDecreaseToggle = static_cast(toggles["TrafficJerkSpeedDecrease"]); - FrogPilotButtonsControl *trafficResetButton = static_cast(toggles["ResetTrafficPersonality"]); - QObject::connect(trafficResetButton, &FrogPilotButtonsControl::buttonClicked, [=]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for Traffic Mode?"), this)) { + StarPilotParamValueControl *trafficFollowToggle = static_cast(toggles["TrafficFollow"]); + StarPilotParamValueControl *trafficAccelerationToggle = static_cast(toggles["TrafficJerkAcceleration"]); + StarPilotParamValueControl *trafficDecelerationToggle = static_cast(toggles["TrafficJerkDeceleration"]); + StarPilotParamValueControl *trafficDangerToggle = static_cast(toggles["TrafficJerkDanger"]); + StarPilotParamValueControl *trafficSpeedToggle = static_cast(toggles["TrafficJerkSpeed"]); + StarPilotParamValueControl *trafficSpeedDecreaseToggle = static_cast(toggles["TrafficJerkSpeedDecrease"]); + StarPilotButtonsControl *trafficResetButton = static_cast(toggles["ResetTrafficPersonality"]); + QObject::connect(trafficResetButton, &StarPilotButtonsControl::buttonClicked, [=]() { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for Traffic Mode?"), this)) { params.putFloat("TrafficFollow", std::stof(params.getKeyDefaultValue("TrafficFollow").value())); params.putFloat("TrafficJerkAcceleration", std::stof(params.getKeyDefaultValue("TrafficJerkAcceleration").value())); params.putFloat("TrafficJerkDeceleration", std::stof(params.getKeyDefaultValue("TrafficJerkDeceleration").value())); @@ -740,16 +740,16 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } }); - FrogPilotParamValueControl *aggressiveFollowToggle = static_cast(toggles["AggressiveFollow"]); - FrogPilotParamValueControl *aggressiveFollowHighToggle = static_cast(toggles["AggressiveFollowHigh"]); - FrogPilotParamValueControl *aggressiveAccelerationToggle = static_cast(toggles["AggressiveJerkAcceleration"]); - FrogPilotParamValueControl *aggressiveDecelerationToggle = static_cast(toggles["AggressiveJerkDeceleration"]); - FrogPilotParamValueControl *aggressiveDangerToggle = static_cast(toggles["AggressiveJerkDanger"]); - FrogPilotParamValueControl *aggressiveSpeedToggle = static_cast(toggles["AggressiveJerkSpeed"]); - FrogPilotParamValueControl *aggressiveSpeedDecreaseToggle = static_cast(toggles["AggressiveJerkSpeedDecrease"]); - FrogPilotButtonsControl *aggressiveResetButton = static_cast(toggles["ResetAggressivePersonality"]); - QObject::connect(aggressiveResetButton, &FrogPilotButtonsControl::buttonClicked, [=]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the Aggressive personality?"), this)) { + StarPilotParamValueControl *aggressiveFollowToggle = static_cast(toggles["AggressiveFollow"]); + StarPilotParamValueControl *aggressiveFollowHighToggle = static_cast(toggles["AggressiveFollowHigh"]); + StarPilotParamValueControl *aggressiveAccelerationToggle = static_cast(toggles["AggressiveJerkAcceleration"]); + StarPilotParamValueControl *aggressiveDecelerationToggle = static_cast(toggles["AggressiveJerkDeceleration"]); + StarPilotParamValueControl *aggressiveDangerToggle = static_cast(toggles["AggressiveJerkDanger"]); + StarPilotParamValueControl *aggressiveSpeedToggle = static_cast(toggles["AggressiveJerkSpeed"]); + StarPilotParamValueControl *aggressiveSpeedDecreaseToggle = static_cast(toggles["AggressiveJerkSpeedDecrease"]); + StarPilotButtonsControl *aggressiveResetButton = static_cast(toggles["ResetAggressivePersonality"]); + QObject::connect(aggressiveResetButton, &StarPilotButtonsControl::buttonClicked, [=]() { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the Aggressive personality?"), this)) { params.putFloat("AggressiveFollow", std::stof(params.getKeyDefaultValue("AggressiveFollow").value())); params.putFloat("AggressiveFollowHigh", std::stof(params.getKeyDefaultValue("AggressiveFollowHigh").value())); params.putFloat("AggressiveJerkAcceleration", std::stof(params.getKeyDefaultValue("AggressiveJerkAcceleration").value())); @@ -768,16 +768,16 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } }); - FrogPilotParamValueControl *standardFollowToggle = static_cast(toggles["StandardFollow"]); - FrogPilotParamValueControl *standardFollowHighToggle = static_cast(toggles["StandardFollowHigh"]); - FrogPilotParamValueControl *standardAccelerationToggle = static_cast(toggles["StandardJerkAcceleration"]); - FrogPilotParamValueControl *standardDecelerationToggle = static_cast(toggles["StandardJerkDeceleration"]); - FrogPilotParamValueControl *standardDangerToggle = static_cast(toggles["StandardJerkDanger"]); - FrogPilotParamValueControl *standardSpeedToggle = static_cast(toggles["StandardJerkSpeed"]); - FrogPilotParamValueControl *standardSpeedDecreaseToggle = static_cast(toggles["StandardJerkSpeedDecrease"]); - FrogPilotButtonsControl *standardResetButton = static_cast(toggles["ResetStandardPersonality"]); - QObject::connect(standardResetButton, &FrogPilotButtonsControl::buttonClicked, [=]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the Standard personality?"), this)) { + StarPilotParamValueControl *standardFollowToggle = static_cast(toggles["StandardFollow"]); + StarPilotParamValueControl *standardFollowHighToggle = static_cast(toggles["StandardFollowHigh"]); + StarPilotParamValueControl *standardAccelerationToggle = static_cast(toggles["StandardJerkAcceleration"]); + StarPilotParamValueControl *standardDecelerationToggle = static_cast(toggles["StandardJerkDeceleration"]); + StarPilotParamValueControl *standardDangerToggle = static_cast(toggles["StandardJerkDanger"]); + StarPilotParamValueControl *standardSpeedToggle = static_cast(toggles["StandardJerkSpeed"]); + StarPilotParamValueControl *standardSpeedDecreaseToggle = static_cast(toggles["StandardJerkSpeedDecrease"]); + StarPilotButtonsControl *standardResetButton = static_cast(toggles["ResetStandardPersonality"]); + QObject::connect(standardResetButton, &StarPilotButtonsControl::buttonClicked, [=]() { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the Standard personality?"), this)) { params.putFloat("StandardFollow", std::stof(params.getKeyDefaultValue("StandardFollow").value())); params.putFloat("StandardFollowHigh", std::stof(params.getKeyDefaultValue("StandardFollowHigh").value())); params.putFloat("StandardJerkAcceleration", std::stof(params.getKeyDefaultValue("StandardJerkAcceleration").value())); @@ -796,16 +796,16 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * } }); - FrogPilotParamValueControl *relaxedFollowToggle = static_cast(toggles["RelaxedFollow"]); - FrogPilotParamValueControl *relaxedFollowHighToggle = static_cast(toggles["RelaxedFollowHigh"]); - FrogPilotParamValueControl *relaxedAccelerationToggle = static_cast(toggles["RelaxedJerkAcceleration"]); - FrogPilotParamValueControl *relaxedDecelerationToggle = static_cast(toggles["RelaxedJerkDeceleration"]); - FrogPilotParamValueControl *relaxedDangerToggle = static_cast(toggles["RelaxedJerkDanger"]); - FrogPilotParamValueControl *relaxedSpeedToggle = static_cast(toggles["RelaxedJerkSpeed"]); - FrogPilotParamValueControl *relaxedSpeedDecreaseToggle = static_cast(toggles["RelaxedJerkSpeedDecrease"]); - FrogPilotButtonsControl *relaxedResetButton = static_cast(toggles["ResetRelaxedPersonality"]); - QObject::connect(relaxedResetButton, &FrogPilotButtonsControl::buttonClicked, [=]() { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the Relaxed personality?"), this)) { + StarPilotParamValueControl *relaxedFollowToggle = static_cast(toggles["RelaxedFollow"]); + StarPilotParamValueControl *relaxedFollowHighToggle = static_cast(toggles["RelaxedFollowHigh"]); + StarPilotParamValueControl *relaxedAccelerationToggle = static_cast(toggles["RelaxedJerkAcceleration"]); + StarPilotParamValueControl *relaxedDecelerationToggle = static_cast(toggles["RelaxedJerkDeceleration"]); + StarPilotParamValueControl *relaxedDangerToggle = static_cast(toggles["RelaxedJerkDanger"]); + StarPilotParamValueControl *relaxedSpeedToggle = static_cast(toggles["RelaxedJerkSpeed"]); + StarPilotParamValueControl *relaxedSpeedDecreaseToggle = static_cast(toggles["RelaxedJerkSpeedDecrease"]); + StarPilotButtonsControl *relaxedResetButton = static_cast(toggles["ResetRelaxedPersonality"]); + QObject::connect(relaxedResetButton, &StarPilotButtonsControl::buttonClicked, [=]() { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your settings for the Relaxed personality?"), this)) { params.putFloat("RelaxedFollow", std::stof(params.getKeyDefaultValue("RelaxedFollow").value())); params.putFloat("RelaxedFollowHigh", std::stof(params.getKeyDefaultValue("RelaxedFollowHigh").value())); params.putFloat("RelaxedJerkAcceleration", std::stof(params.getKeyDefaultValue("RelaxedJerkAcceleration").value())); @@ -826,11 +826,11 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * openDescriptions(forceOpenDescriptions, toggles); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [longitudinalLayout, longitudinalPanel, this] { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [longitudinalLayout, longitudinalPanel, this] { openDescriptions(forceOpenDescriptions, toggles); longitudinalLayout->setCurrentWidget(longitudinalPanel); }); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubSubPanel, [longitudinalLayout, customDrivingPersonalityPanel, qolPanel, speedLimitControllerPanel, this]() { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubSubPanel, [longitudinalLayout, customDrivingPersonalityPanel, qolPanel, speedLimitControllerPanel, this]() { openDescriptions(forceOpenDescriptions, toggles); if (customPersonalityOpen) { @@ -847,7 +847,7 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * slcOpen = false; } }); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubSubSubPanel, [longitudinalLayout, weatherPanel, this]() { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubSubSubPanel, [longitudinalLayout, weatherPanel, this]() { openDescriptions(forceOpenDescriptions, toggles); if (weatherOpen) { @@ -856,11 +856,11 @@ FrogPilotLongitudinalPanel::FrogPilotLongitudinalPanel(FrogPilotSettingsWindow * weatherOpen = false; } }); - QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, this, &FrogPilotLongitudinalPanel::updateMetric); + QObject::connect(parent, &StarPilotSettingsWindow::updateMetric, this, &StarPilotLongitudinalPanel::updateMetric); } -void FrogPilotLongitudinalPanel::showEvent(QShowEvent *event) { - FrogPilotUIState &fs = *frogpilotUIState(); +void StarPilotLongitudinalPanel::showEvent(QShowEvent *event) { + StarPilotUIState &fs = *starpilotUIState(); calibratedLateralAccelerationLabel->setText(QString::number(params.getFloat("CalibratedLateralAcceleration"), 'f', 2) + tr(" m/s²")); calibrationProgressLabel->setText(QString::number(params.getFloat("CalibrationProgress"), 'f', 2) + "%"); @@ -874,12 +874,12 @@ void FrogPilotLongitudinalPanel::showEvent(QShowEvent *event) { bool keyExists = !params.get("WeatherToken").empty(); weatherKeyControl->setText(0, keyExists ? tr("REMOVE") : tr("ADD")); - weatherKeyControl->setVisibleButton(1, keyExists && fs.frogpilot_scene.online); + weatherKeyControl->setVisibleButton(1, keyExists && fs.starpilot_scene.online); updateToggles(); } -void FrogPilotLongitudinalPanel::updateMetric(bool metric, bool bootRun) { +void StarPilotLongitudinalPanel::updateMetric(bool metric, bool bootRun) { static bool previousMetric; if (metric != previousMetric && !bootRun) { double distanceConversion = metric ? FOOT_TO_METER : METER_TO_FOOT; @@ -933,23 +933,23 @@ void FrogPilotLongitudinalPanel::updateMetric(bool metric, bool bootRun) { labelsInitialized = true; } - FrogPilotDualParamValueControl *ceSpeedToggle = reinterpret_cast(toggles["CESpeed"]); - FrogPilotParamValueButtonControl *ceSignal = static_cast(toggles["CESignalSpeed"]); - FrogPilotParamValueControl *customCruiseToggle = static_cast(toggles["CustomCruise"]); - FrogPilotParamValueControl *customCruiseLongToggle = static_cast(toggles["CustomCruiseLong"]); - FrogPilotParamValueControl *offset1Toggle = static_cast(toggles["Offset1"]); - FrogPilotParamValueControl *offset2Toggle = static_cast(toggles["Offset2"]); - FrogPilotParamValueControl *offset3Toggle = static_cast(toggles["Offset3"]); - FrogPilotParamValueControl *offset4Toggle = static_cast(toggles["Offset4"]); - FrogPilotParamValueControl *offset5Toggle = static_cast(toggles["Offset5"]); - FrogPilotParamValueControl *offset6Toggle = static_cast(toggles["Offset6"]); - FrogPilotParamValueControl *offset7Toggle = static_cast(toggles["Offset7"]); - FrogPilotParamValueControl *increasedStoppedDistanceToggle = static_cast(toggles["IncreasedStoppedDistance"]); - FrogPilotParamValueControl *increasedStoppedDistanceLowVisibilityToggle = static_cast(toggles["IncreasedStoppedDistanceLowVisibility"]); - FrogPilotParamValueControl *increasedStoppedDistanceRainToggle = static_cast(toggles["IncreasedStoppedDistanceRain"]); - FrogPilotParamValueControl *increasedStoppedDistanceRainStormToggle = static_cast(toggles["IncreasedStoppedDistanceRainStorm"]); - FrogPilotParamValueControl *increasedStoppedDistanceSnowToggle = static_cast(toggles["IncreasedStoppedDistanceSnow"]); - FrogPilotParamValueControl *setSpeedOffsetToggle = static_cast(toggles["SetSpeedOffset"]); + StarPilotDualParamValueControl *ceSpeedToggle = reinterpret_cast(toggles["CESpeed"]); + StarPilotParamValueButtonControl *ceSignal = static_cast(toggles["CESignalSpeed"]); + StarPilotParamValueControl *customCruiseToggle = static_cast(toggles["CustomCruise"]); + StarPilotParamValueControl *customCruiseLongToggle = static_cast(toggles["CustomCruiseLong"]); + StarPilotParamValueControl *offset1Toggle = static_cast(toggles["Offset1"]); + StarPilotParamValueControl *offset2Toggle = static_cast(toggles["Offset2"]); + StarPilotParamValueControl *offset3Toggle = static_cast(toggles["Offset3"]); + StarPilotParamValueControl *offset4Toggle = static_cast(toggles["Offset4"]); + StarPilotParamValueControl *offset5Toggle = static_cast(toggles["Offset5"]); + StarPilotParamValueControl *offset6Toggle = static_cast(toggles["Offset6"]); + StarPilotParamValueControl *offset7Toggle = static_cast(toggles["Offset7"]); + StarPilotParamValueControl *increasedStoppedDistanceToggle = static_cast(toggles["IncreasedStoppedDistance"]); + StarPilotParamValueControl *increasedStoppedDistanceLowVisibilityToggle = static_cast(toggles["IncreasedStoppedDistanceLowVisibility"]); + StarPilotParamValueControl *increasedStoppedDistanceRainToggle = static_cast(toggles["IncreasedStoppedDistanceRain"]); + StarPilotParamValueControl *increasedStoppedDistanceRainStormToggle = static_cast(toggles["IncreasedStoppedDistanceRainStorm"]); + StarPilotParamValueControl *increasedStoppedDistanceSnowToggle = static_cast(toggles["IncreasedStoppedDistanceSnow"]); + StarPilotParamValueControl *setSpeedOffsetToggle = static_cast(toggles["SetSpeedOffset"]); if (metric) { offset1Toggle->setTitle(tr("Speed Offset (0–29 km/h)")); @@ -1024,7 +1024,7 @@ void FrogPilotLongitudinalPanel::updateMetric(bool metric, bool bootRun) { } } -void FrogPilotLongitudinalPanel::updateToggles() { +void StarPilotLongitudinalPanel::updateToggles() { for (auto &[key, toggle] : toggles) { if (parentKeys.contains(key)) { toggle->setVisible(false); @@ -1036,10 +1036,10 @@ void FrogPilotLongitudinalPanel::updateToggles() { continue; } - bool setVisible = parent->tuningLevel >= parent->frogpilotToggleLevels[key].toDouble(); + bool setVisible = parent->tuningLevel >= parent->starpilotToggleLevels[key].toDouble(); if (key == "CEStopLights") { - setVisible &= parent->tuningLevel < parent->frogpilotToggleLevels["CEModelStopTime"].toDouble(); + setVisible &= parent->tuningLevel < parent->starpilotToggleLevels["CEModelStopTime"].toDouble(); } else if (key == "CustomCruise" || key == "CustomCruiseLong" || key == "SetSpeedLimit" || key == "SetSpeedOffset") { diff --git a/frogpilot/ui/qt/offroad/longitudinal_settings.h b/starpilot/ui/qt/offroad/longitudinal_settings.h similarity index 87% rename from frogpilot/ui/qt/offroad/longitudinal_settings.h rename to starpilot/ui/qt/offroad/longitudinal_settings.h index 711b94bf..ef5d71c8 100644 --- a/frogpilot/ui/qt/offroad/longitudinal_settings.h +++ b/starpilot/ui/qt/offroad/longitudinal_settings.h @@ -1,12 +1,12 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotLongitudinalPanel : public FrogPilotListWidget { +class StarPilotLongitudinalPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotLongitudinalPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotLongitudinalPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); signals: void openSubPanel(); @@ -50,16 +50,16 @@ private: QSet parentKeys; - FrogPilotButtonsControl *weatherKeyControl; + StarPilotButtonsControl *weatherKeyControl; - FrogPilotParamValueControl *longitudinalActuatorDelayToggle; - FrogPilotParamValueControl *startAccelToggle; - FrogPilotParamValueControl *stopAccelToggle; - FrogPilotParamValueControl *stoppingDecelRateToggle; - FrogPilotParamValueControl *vEgoStartingToggle; - FrogPilotParamValueControl *vEgoStoppingToggle; + StarPilotParamValueControl *longitudinalActuatorDelayToggle; + StarPilotParamValueControl *startAccelToggle; + StarPilotParamValueControl *stopAccelToggle; + StarPilotParamValueControl *stoppingDecelRateToggle; + StarPilotParamValueControl *vEgoStartingToggle; + StarPilotParamValueControl *vEgoStoppingToggle; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; LabelControl *calibratedLateralAccelerationLabel; LabelControl *calibrationProgressLabel; diff --git a/frogpilot/ui/qt/offroad/maps_settings.cc b/starpilot/ui/qt/offroad/maps_settings.cc similarity index 85% rename from frogpilot/ui/qt/offroad/maps_settings.cc rename to starpilot/ui/qt/offroad/maps_settings.cc index 3aeee094..b240d322 100644 --- a/frogpilot/ui/qt/offroad/maps_settings.cc +++ b/starpilot/ui/qt/offroad/maps_settings.cc @@ -1,14 +1,14 @@ #include -#include "frogpilot/ui/qt/offroad/maps_settings.h" +#include "starpilot/ui/qt/offroad/maps_settings.h" -FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotMapsPanel::StarPilotMapsPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; QStackedLayout *mapsLayout = new QStackedLayout(); addItem(mapsLayout); - FrogPilotListWidget *settingsList = new FrogPilotListWidget(this); + StarPilotListWidget *settingsList = new StarPilotListWidget(this); std::vector scheduleOptions{tr("Manually"), tr("Weekly"), tr("Monthly")}; preferredSchedule = new ButtonParamControl("PreferredSchedule", tr("Automatically Update Maps"), @@ -21,7 +21,7 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent, bool for downloadMapsButton = new ButtonControl(tr("Download Maps"), tr("DOWNLOAD"), tr("Manually update your selected map sources so \"Speed Limit Controller\" has the latest speed limit information.")); QObject::connect(downloadMapsButton, &ButtonControl::clicked, [this] { if (downloadMapsButton->text() == tr("CANCEL")) { - if (FrogPilotConfirmationDialog::yesorno(tr("Cancel the download?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Cancel the download?"), this)) { cancelDownload(); } } else { @@ -32,10 +32,10 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent, bool for settingsList->addItem(lastMapsDownload = new LabelControl(tr("Last Updated"), params.get("LastMapsUpdate").empty() ? "Never" : QString::fromStdString(params.get("LastMapsUpdate")))); - selectMaps = new FrogPilotButtonsControl(tr("Map Sources"), + selectMaps = new StarPilotButtonsControl(tr("Map Sources"), tr("Select the countries or U.S. states to use with \"Speed Limit Controller\".") , "", {tr("COUNTRIES"), tr("STATES")}); - QObject::connect(selectMaps, &FrogPilotButtonsControl::buttonClicked, [mapsLayout, this](int id) { + QObject::connect(selectMaps, &StarPilotButtonsControl::buttonClicked, [mapsLayout, this](int id) { mapsLayout->setCurrentIndex(id + 1); openSubPanel(); @@ -52,7 +52,7 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent, bool for removeMapsButton = new ButtonControl(tr("Remove Maps"), tr("REMOVE"), tr("Delete downloaded map data to free up storage space.")); QObject::connect(removeMapsButton, &ButtonControl::clicked, [this] { - if (FrogPilotConfirmationDialog::yesorno(tr("Delete all downloaded maps?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Delete all downloaded maps?"), this)) { std::thread([this] { mapsSize->setText(tr("0 MB")); @@ -67,7 +67,7 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent, bool for ScrollView *settingsPanel = new ScrollView(settingsList, this); mapsLayout->addWidget(settingsPanel); - FrogPilotListWidget *countriesList = new FrogPilotListWidget(this); + StarPilotListWidget *countriesList = new StarPilotListWidget(this); std::vector>> countries = { {tr("Africa"), africaMap}, {tr("Antarctica"), antarcticaMap}, @@ -86,7 +86,7 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent, bool for ScrollView *countryMapsPanel = new ScrollView(countriesList, this); mapsLayout->addWidget(countryMapsPanel); - FrogPilotListWidget *statesList = new FrogPilotListWidget(this); + StarPilotListWidget *statesList = new StarPilotListWidget(this); std::vector>> states = { {tr("United States - Midwest"), midwestMap}, {tr("United States - Northeast"), northeastMap}, @@ -103,7 +103,7 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent, bool for ScrollView *stateMapsPanel = new ScrollView(statesList, this); mapsLayout->addWidget(stateMapsPanel); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [mapsLayout, settingsPanel, this] { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [mapsLayout, settingsPanel, this] { if (forceOpenDescriptions) { downloadMapsButton->showDescription(); preferredSchedule->showDescription(); @@ -115,10 +115,10 @@ FrogPilotMapsPanel::FrogPilotMapsPanel(FrogPilotSettingsWindow *parent, bool for mapsLayout->setCurrentWidget(settingsPanel); }); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotMapsPanel::updateState); + QObject::connect(uiState(), &UIState::uiUpdate, this, &StarPilotMapsPanel::updateState); } -void FrogPilotMapsPanel::showEvent(QShowEvent *event) { +void StarPilotMapsPanel::showEvent(QShowEvent *event) { if (forceOpenDescriptions) { downloadMapsButton->showDescription(); preferredSchedule->showDescription(); @@ -129,8 +129,8 @@ void FrogPilotMapsPanel::showEvent(QShowEvent *event) { UIState &s = *uiState(); UIScene &scene = s.scene; - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; SubMaster &fpsm = *(fs.sm); const cereal::MapdExtendedOut::Reader &mapdExtendedOut = fpsm["mapdExtendedOut"].getMapdExtendedOut(); @@ -143,7 +143,7 @@ void FrogPilotMapsPanel::showEvent(QShowEvent *event) { hasMapsSelected = !params.get("MapsSelected").empty(); - bool parked = !scene.started || frogpilot_scene.parked || parent->isFrogsGoMoo; + bool parked = !scene.started || starpilot_scene.parked || parent->isFrogsGoMoo; removeMapsButton->setVisible(mapsFolderPath.exists()); @@ -158,18 +158,18 @@ void FrogPilotMapsPanel::showEvent(QShowEvent *event) { updateDownloadLabels(mapDownloadDownloaded, mapDownloadTotal); } else { - downloadMapsButton->setEnabled(!cancellingDownload && hasMapsSelected && frogpilot_scene.online && parked); - downloadMapsButton->setValue(frogpilot_scene.online ? (parked ? "" : tr("Not parked")) : tr("Offline...")); + downloadMapsButton->setEnabled(!cancellingDownload && hasMapsSelected && starpilot_scene.online && parked); + downloadMapsButton->setValue(starpilot_scene.online ? (parked ? "" : tr("Not parked")) : tr("Offline...")); } } -void FrogPilotMapsPanel::updateState(const UIState &s, const FrogPilotUIState &fs) { +void StarPilotMapsPanel::updateState(const UIState &s, const StarPilotUIState &fs) { if (!isVisible()) { return; } - const FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; + const StarPilotUIScene &starpilot_scene = fs.starpilot_scene; const UIScene &scene = s.scene; const SubMaster &fpsm = *(fs.sm); @@ -177,7 +177,7 @@ void FrogPilotMapsPanel::updateState(const UIState &s, const FrogPilotUIState &f const cereal::MapdDownloadProgress::Reader &downloadProgress = mapdExtendedOut.getDownloadProgress(); bool mapDownloadActive = downloadProgress.getActive(); - bool parked = !scene.started || frogpilot_scene.parked || parent->isFrogsGoMoo; + bool parked = !scene.started || starpilot_scene.parked || parent->isFrogsGoMoo; int mapDownloadDownloaded = downloadProgress.getDownloadedFiles(); int mapDownloadTotal = downloadProgress.getTotalFiles(); @@ -187,14 +187,14 @@ void FrogPilotMapsPanel::updateState(const UIState &s, const FrogPilotUIState &f } else if (downloadMapsButton->text() == tr("CANCEL")) { updateDownloadLabels(mapDownloadDownloaded, mapDownloadTotal); } else { - downloadMapsButton->setEnabled(!cancellingDownload && hasMapsSelected && frogpilot_scene.online && parked); - downloadMapsButton->setValue(frogpilot_scene.online ? (parked ? "" : tr("Not parked")) : tr("Offline...")); + downloadMapsButton->setEnabled(!cancellingDownload && hasMapsSelected && starpilot_scene.online && parked); + downloadMapsButton->setValue(starpilot_scene.online ? (parked ? "" : tr("Not parked")) : tr("Offline...")); } parent->keepScreenOn = mapDownloadActive; } -void FrogPilotMapsPanel::cancelDownload() { +void StarPilotMapsPanel::cancelDownload() { cancellingDownload = true; downloadMapsButton->setEnabled(false); @@ -225,7 +225,7 @@ void FrogPilotMapsPanel::cancelDownload() { }); } -void FrogPilotMapsPanel::startDownload() { +void StarPilotMapsPanel::startDownload() { downloadETA->setText(tr("Calculating...")); downloadMapsButton->setText(tr("CANCEL")); downloadStatus->setText(tr("Calculating...")); @@ -244,7 +244,7 @@ void FrogPilotMapsPanel::startDownload() { params_memory.putBool("DownloadMaps", true); } -void FrogPilotMapsPanel::updateDownloadLabels(int downloadedFiles, int totalFiles) { +void StarPilotMapsPanel::updateDownloadLabels(int downloadedFiles, int totalFiles) { if (downloadedFiles == totalFiles && totalFiles != 0) { downloadMapsButton->setText(tr("DOWNLOAD")); lastMapsDownload->setText(formatCurrentDate()); diff --git a/frogpilot/ui/qt/offroad/maps_settings.h b/starpilot/ui/qt/offroad/maps_settings.h similarity index 68% rename from frogpilot/ui/qt/offroad/maps_settings.h rename to starpilot/ui/qt/offroad/maps_settings.h index 2b9dba88..eb12ddbd 100644 --- a/frogpilot/ui/qt/offroad/maps_settings.h +++ b/starpilot/ui/qt/offroad/maps_settings.h @@ -1,13 +1,13 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" -#include "frogpilot/ui/qt/widgets/navigation_functions.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" +#include "starpilot/ui/qt/widgets/navigation_functions.h" -class FrogPilotMapsPanel : public FrogPilotListWidget { +class StarPilotMapsPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotMapsPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotMapsPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); signals: void openSubPanel(); @@ -19,7 +19,7 @@ private: void cancelDownload(); void startDownload(); void updateDownloadLabels(int downloadedFiles, int totalFiles); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); bool cancellingDownload; bool forceOpenDescriptions; @@ -30,9 +30,9 @@ private: ButtonParamControl *preferredSchedule; - FrogPilotButtonsControl *selectMaps; + StarPilotButtonsControl *selectMaps; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; LabelControl *downloadETA; LabelControl *downloadStatus; diff --git a/frogpilot/ui/qt/offroad/moc_data_settings.cc b/starpilot/ui/qt/offroad/moc_data_settings.cc similarity index 71% rename from frogpilot/ui/qt/offroad/moc_data_settings.cc rename to starpilot/ui/qt/offroad/moc_data_settings.cc index 3dd0d187..aa212342 100644 --- a/frogpilot/ui/qt/offroad/moc_data_settings.cc +++ b/starpilot/ui/qt/offroad/moc_data_settings.cc @@ -20,27 +20,27 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotDataPanel_t { +struct qt_meta_stringdata_StarPilotDataPanel_t { QByteArrayData data[3]; char stringdata0[33]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotDataPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotDataPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotDataPanel_t qt_meta_stringdata_FrogPilotDataPanel = { +static const qt_meta_stringdata_StarPilotDataPanel_t qt_meta_stringdata_StarPilotDataPanel = { { -QT_MOC_LITERAL(0, 0, 18), // "FrogPilotDataPanel" +QT_MOC_LITERAL(0, 0, 18), // "StarPilotDataPanel" QT_MOC_LITERAL(1, 19, 12), // "openSubPanel" QT_MOC_LITERAL(2, 32, 0) // "" }, - "FrogPilotDataPanel\0openSubPanel\0" + "StarPilotDataPanel\0openSubPanel\0" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotDataPanel[] = { +static const uint qt_meta_data_StarPilotDataPanel[] = { // content: 8, // revision @@ -62,10 +62,10 @@ static const uint qt_meta_data_FrogPilotDataPanel[] = { 0 // eod }; -void FrogPilotDataPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotDataPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -74,8 +74,8 @@ void FrogPilotDataPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, i } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotDataPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotDataPanel::openSubPanel)) { + using _t = void (StarPilotDataPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotDataPanel::openSubPanel)) { *result = 0; return; } @@ -84,32 +84,32 @@ void FrogPilotDataPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, i Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotDataPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotDataPanel.data, - qt_meta_data_FrogPilotDataPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotDataPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotDataPanel.data, + qt_meta_data_StarPilotDataPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotDataPanel::metaObject() const +const QMetaObject *StarPilotDataPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotDataPanel::qt_metacast(const char *_clname) +void *StarPilotDataPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotDataPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotDataPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotDataPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotDataPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -125,7 +125,7 @@ int FrogPilotDataPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotDataPanel::openSubPanel() +void StarPilotDataPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_device_settings.cc b/starpilot/ui/qt/offroad/moc_device_settings.cc similarity index 70% rename from frogpilot/ui/qt/offroad/moc_device_settings.cc rename to starpilot/ui/qt/offroad/moc_device_settings.cc index 0e66a1e7..a00bda66 100644 --- a/frogpilot/ui/qt/offroad/moc_device_settings.cc +++ b/starpilot/ui/qt/offroad/moc_device_settings.cc @@ -20,27 +20,27 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotDevicePanel_t { +struct qt_meta_stringdata_StarPilotDevicePanel_t { QByteArrayData data[3]; char stringdata0[35]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotDevicePanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotDevicePanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotDevicePanel_t qt_meta_stringdata_FrogPilotDevicePanel = { +static const qt_meta_stringdata_StarPilotDevicePanel_t qt_meta_stringdata_StarPilotDevicePanel = { { -QT_MOC_LITERAL(0, 0, 20), // "FrogPilotDevicePanel" +QT_MOC_LITERAL(0, 0, 20), // "StarPilotDevicePanel" QT_MOC_LITERAL(1, 21, 12), // "openSubPanel" QT_MOC_LITERAL(2, 34, 0) // "" }, - "FrogPilotDevicePanel\0openSubPanel\0" + "StarPilotDevicePanel\0openSubPanel\0" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotDevicePanel[] = { +static const uint qt_meta_data_StarPilotDevicePanel[] = { // content: 8, // revision @@ -62,10 +62,10 @@ static const uint qt_meta_data_FrogPilotDevicePanel[] = { 0 // eod }; -void FrogPilotDevicePanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotDevicePanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -74,8 +74,8 @@ void FrogPilotDevicePanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotDevicePanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotDevicePanel::openSubPanel)) { + using _t = void (StarPilotDevicePanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotDevicePanel::openSubPanel)) { *result = 0; return; } @@ -84,32 +84,32 @@ void FrogPilotDevicePanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotDevicePanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotDevicePanel.data, - qt_meta_data_FrogPilotDevicePanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotDevicePanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotDevicePanel.data, + qt_meta_data_StarPilotDevicePanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotDevicePanel::metaObject() const +const QMetaObject *StarPilotDevicePanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotDevicePanel::qt_metacast(const char *_clname) +void *StarPilotDevicePanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotDevicePanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotDevicePanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotDevicePanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotDevicePanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -125,7 +125,7 @@ int FrogPilotDevicePanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotDevicePanel::openSubPanel() +void StarPilotDevicePanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_expandable_multi_option_dialog.cc b/starpilot/ui/qt/offroad/moc_expandable_multi_option_dialog.cc similarity index 100% rename from frogpilot/ui/qt/offroad/moc_expandable_multi_option_dialog.cc rename to starpilot/ui/qt/offroad/moc_expandable_multi_option_dialog.cc diff --git a/frogpilot/ui/qt/offroad/moc_lateral_settings.cc b/starpilot/ui/qt/offroad/moc_lateral_settings.cc similarity index 70% rename from frogpilot/ui/qt/offroad/moc_lateral_settings.cc rename to starpilot/ui/qt/offroad/moc_lateral_settings.cc index ab36a069..269b02a2 100644 --- a/frogpilot/ui/qt/offroad/moc_lateral_settings.cc +++ b/starpilot/ui/qt/offroad/moc_lateral_settings.cc @@ -20,27 +20,27 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotLateralPanel_t { +struct qt_meta_stringdata_StarPilotLateralPanel_t { QByteArrayData data[3]; char stringdata0[36]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotLateralPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotLateralPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotLateralPanel_t qt_meta_stringdata_FrogPilotLateralPanel = { +static const qt_meta_stringdata_StarPilotLateralPanel_t qt_meta_stringdata_StarPilotLateralPanel = { { -QT_MOC_LITERAL(0, 0, 21), // "FrogPilotLateralPanel" +QT_MOC_LITERAL(0, 0, 21), // "StarPilotLateralPanel" QT_MOC_LITERAL(1, 22, 12), // "openSubPanel" QT_MOC_LITERAL(2, 35, 0) // "" }, - "FrogPilotLateralPanel\0openSubPanel\0" + "StarPilotLateralPanel\0openSubPanel\0" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotLateralPanel[] = { +static const uint qt_meta_data_StarPilotLateralPanel[] = { // content: 8, // revision @@ -62,10 +62,10 @@ static const uint qt_meta_data_FrogPilotLateralPanel[] = { 0 // eod }; -void FrogPilotLateralPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotLateralPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -74,8 +74,8 @@ void FrogPilotLateralPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotLateralPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotLateralPanel::openSubPanel)) { + using _t = void (StarPilotLateralPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotLateralPanel::openSubPanel)) { *result = 0; return; } @@ -84,32 +84,32 @@ void FrogPilotLateralPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotLateralPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotLateralPanel.data, - qt_meta_data_FrogPilotLateralPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotLateralPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotLateralPanel.data, + qt_meta_data_StarPilotLateralPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotLateralPanel::metaObject() const +const QMetaObject *StarPilotLateralPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotLateralPanel::qt_metacast(const char *_clname) +void *StarPilotLateralPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotLateralPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotLateralPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotLateralPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotLateralPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -125,7 +125,7 @@ int FrogPilotLateralPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotLateralPanel::openSubPanel() +void StarPilotLateralPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_longitudinal_settings.cc b/starpilot/ui/qt/offroad/moc_longitudinal_settings.cc similarity index 70% rename from frogpilot/ui/qt/offroad/moc_longitudinal_settings.cc rename to starpilot/ui/qt/offroad/moc_longitudinal_settings.cc index de6a54b7..e7529eb1 100644 --- a/frogpilot/ui/qt/offroad/moc_longitudinal_settings.cc +++ b/starpilot/ui/qt/offroad/moc_longitudinal_settings.cc @@ -20,30 +20,30 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotLongitudinalPanel_t { +struct qt_meta_stringdata_StarPilotLongitudinalPanel_t { QByteArrayData data[5]; char stringdata0[76]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotLongitudinalPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotLongitudinalPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotLongitudinalPanel_t qt_meta_stringdata_FrogPilotLongitudinalPanel = { +static const qt_meta_stringdata_StarPilotLongitudinalPanel_t qt_meta_stringdata_StarPilotLongitudinalPanel = { { -QT_MOC_LITERAL(0, 0, 26), // "FrogPilotLongitudinalPanel" +QT_MOC_LITERAL(0, 0, 26), // "StarPilotLongitudinalPanel" QT_MOC_LITERAL(1, 27, 12), // "openSubPanel" QT_MOC_LITERAL(2, 40, 0), // "" QT_MOC_LITERAL(3, 41, 15), // "openSubSubPanel" QT_MOC_LITERAL(4, 57, 18) // "openSubSubSubPanel" }, - "FrogPilotLongitudinalPanel\0openSubPanel\0" + "StarPilotLongitudinalPanel\0openSubPanel\0" "\0openSubSubPanel\0openSubSubSubPanel" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotLongitudinalPanel[] = { +static const uint qt_meta_data_StarPilotLongitudinalPanel[] = { // content: 8, // revision @@ -69,10 +69,10 @@ static const uint qt_meta_data_FrogPilotLongitudinalPanel[] = { 0 // eod }; -void FrogPilotLongitudinalPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotLongitudinalPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -83,22 +83,22 @@ void FrogPilotLongitudinalPanel::qt_static_metacall(QObject *_o, QMetaObject::Ca } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotLongitudinalPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotLongitudinalPanel::openSubPanel)) { + using _t = void (StarPilotLongitudinalPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotLongitudinalPanel::openSubPanel)) { *result = 0; return; } } { - using _t = void (FrogPilotLongitudinalPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotLongitudinalPanel::openSubSubPanel)) { + using _t = void (StarPilotLongitudinalPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotLongitudinalPanel::openSubSubPanel)) { *result = 1; return; } } { - using _t = void (FrogPilotLongitudinalPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotLongitudinalPanel::openSubSubSubPanel)) { + using _t = void (StarPilotLongitudinalPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotLongitudinalPanel::openSubSubSubPanel)) { *result = 2; return; } @@ -107,32 +107,32 @@ void FrogPilotLongitudinalPanel::qt_static_metacall(QObject *_o, QMetaObject::Ca Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotLongitudinalPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotLongitudinalPanel.data, - qt_meta_data_FrogPilotLongitudinalPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotLongitudinalPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotLongitudinalPanel.data, + qt_meta_data_StarPilotLongitudinalPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotLongitudinalPanel::metaObject() const +const QMetaObject *StarPilotLongitudinalPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotLongitudinalPanel::qt_metacast(const char *_clname) +void *StarPilotLongitudinalPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotLongitudinalPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotLongitudinalPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotLongitudinalPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotLongitudinalPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -148,19 +148,19 @@ int FrogPilotLongitudinalPanel::qt_metacall(QMetaObject::Call _c, int _id, void } // SIGNAL 0 -void FrogPilotLongitudinalPanel::openSubPanel() +void StarPilotLongitudinalPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } // SIGNAL 1 -void FrogPilotLongitudinalPanel::openSubSubPanel() +void StarPilotLongitudinalPanel::openSubSubPanel() { QMetaObject::activate(this, &staticMetaObject, 1, nullptr); } // SIGNAL 2 -void FrogPilotLongitudinalPanel::openSubSubSubPanel() +void StarPilotLongitudinalPanel::openSubSubSubPanel() { QMetaObject::activate(this, &staticMetaObject, 2, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_maps_settings.cc b/starpilot/ui/qt/offroad/moc_maps_settings.cc similarity index 71% rename from frogpilot/ui/qt/offroad/moc_maps_settings.cc rename to starpilot/ui/qt/offroad/moc_maps_settings.cc index 0986939b..ec40879c 100644 --- a/frogpilot/ui/qt/offroad/moc_maps_settings.cc +++ b/starpilot/ui/qt/offroad/moc_maps_settings.cc @@ -20,27 +20,27 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotMapsPanel_t { +struct qt_meta_stringdata_StarPilotMapsPanel_t { QByteArrayData data[3]; char stringdata0[33]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotMapsPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotMapsPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotMapsPanel_t qt_meta_stringdata_FrogPilotMapsPanel = { +static const qt_meta_stringdata_StarPilotMapsPanel_t qt_meta_stringdata_StarPilotMapsPanel = { { -QT_MOC_LITERAL(0, 0, 18), // "FrogPilotMapsPanel" +QT_MOC_LITERAL(0, 0, 18), // "StarPilotMapsPanel" QT_MOC_LITERAL(1, 19, 12), // "openSubPanel" QT_MOC_LITERAL(2, 32, 0) // "" }, - "FrogPilotMapsPanel\0openSubPanel\0" + "StarPilotMapsPanel\0openSubPanel\0" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotMapsPanel[] = { +static const uint qt_meta_data_StarPilotMapsPanel[] = { // content: 8, // revision @@ -62,10 +62,10 @@ static const uint qt_meta_data_FrogPilotMapsPanel[] = { 0 // eod }; -void FrogPilotMapsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotMapsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -74,8 +74,8 @@ void FrogPilotMapsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, i } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotMapsPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotMapsPanel::openSubPanel)) { + using _t = void (StarPilotMapsPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotMapsPanel::openSubPanel)) { *result = 0; return; } @@ -84,32 +84,32 @@ void FrogPilotMapsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, i Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotMapsPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotMapsPanel.data, - qt_meta_data_FrogPilotMapsPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotMapsPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotMapsPanel.data, + qt_meta_data_StarPilotMapsPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotMapsPanel::metaObject() const +const QMetaObject *StarPilotMapsPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotMapsPanel::qt_metacast(const char *_clname) +void *StarPilotMapsPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotMapsPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotMapsPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotMapsPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotMapsPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -125,7 +125,7 @@ int FrogPilotMapsPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotMapsPanel::openSubPanel() +void StarPilotMapsPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_model_settings.cc b/starpilot/ui/qt/offroad/moc_model_settings.cc similarity index 70% rename from frogpilot/ui/qt/offroad/moc_model_settings.cc rename to starpilot/ui/qt/offroad/moc_model_settings.cc index 61036633..aa73fde7 100644 --- a/frogpilot/ui/qt/offroad/moc_model_settings.cc +++ b/starpilot/ui/qt/offroad/moc_model_settings.cc @@ -20,27 +20,27 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotModelPanel_t { +struct qt_meta_stringdata_StarPilotModelPanel_t { QByteArrayData data[3]; char stringdata0[34]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotModelPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotModelPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotModelPanel_t qt_meta_stringdata_FrogPilotModelPanel = { +static const qt_meta_stringdata_StarPilotModelPanel_t qt_meta_stringdata_StarPilotModelPanel = { { -QT_MOC_LITERAL(0, 0, 19), // "FrogPilotModelPanel" +QT_MOC_LITERAL(0, 0, 19), // "StarPilotModelPanel" QT_MOC_LITERAL(1, 20, 12), // "openSubPanel" QT_MOC_LITERAL(2, 33, 0) // "" }, - "FrogPilotModelPanel\0openSubPanel\0" + "StarPilotModelPanel\0openSubPanel\0" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotModelPanel[] = { +static const uint qt_meta_data_StarPilotModelPanel[] = { // content: 8, // revision @@ -62,10 +62,10 @@ static const uint qt_meta_data_FrogPilotModelPanel[] = { 0 // eod }; -void FrogPilotModelPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotModelPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -74,8 +74,8 @@ void FrogPilotModelPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotModelPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotModelPanel::openSubPanel)) { + using _t = void (StarPilotModelPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotModelPanel::openSubPanel)) { *result = 0; return; } @@ -84,32 +84,32 @@ void FrogPilotModelPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotModelPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotModelPanel.data, - qt_meta_data_FrogPilotModelPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotModelPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotModelPanel.data, + qt_meta_data_StarPilotModelPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotModelPanel::metaObject() const +const QMetaObject *StarPilotModelPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotModelPanel::qt_metacast(const char *_clname) +void *StarPilotModelPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotModelPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotModelPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotModelPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotModelPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -125,7 +125,7 @@ int FrogPilotModelPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotModelPanel::openSubPanel() +void StarPilotModelPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_navigation_settings.cc b/starpilot/ui/qt/offroad/moc_navigation_settings.cc similarity index 70% rename from frogpilot/ui/qt/offroad/moc_navigation_settings.cc rename to starpilot/ui/qt/offroad/moc_navigation_settings.cc index f455d511..42d738dd 100644 --- a/frogpilot/ui/qt/offroad/moc_navigation_settings.cc +++ b/starpilot/ui/qt/offroad/moc_navigation_settings.cc @@ -20,29 +20,29 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotNavigationPanel_t { +struct qt_meta_stringdata_StarPilotNavigationPanel_t { QByteArrayData data[4]; char stringdata0[53]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotNavigationPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotNavigationPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotNavigationPanel_t qt_meta_stringdata_FrogPilotNavigationPanel = { +static const qt_meta_stringdata_StarPilotNavigationPanel_t qt_meta_stringdata_StarPilotNavigationPanel = { { -QT_MOC_LITERAL(0, 0, 24), // "FrogPilotNavigationPanel" +QT_MOC_LITERAL(0, 0, 24), // "StarPilotNavigationPanel" QT_MOC_LITERAL(1, 25, 13), // "closeSubPanel" QT_MOC_LITERAL(2, 39, 0), // "" QT_MOC_LITERAL(3, 40, 12) // "openSubPanel" }, - "FrogPilotNavigationPanel\0closeSubPanel\0" + "StarPilotNavigationPanel\0closeSubPanel\0" "\0openSubPanel" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotNavigationPanel[] = { +static const uint qt_meta_data_StarPilotNavigationPanel[] = { // content: 8, // revision @@ -66,10 +66,10 @@ static const uint qt_meta_data_FrogPilotNavigationPanel[] = { 0 // eod }; -void FrogPilotNavigationPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotNavigationPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->closeSubPanel(); break; @@ -79,15 +79,15 @@ void FrogPilotNavigationPanel::qt_static_metacall(QObject *_o, QMetaObject::Call } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotNavigationPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotNavigationPanel::closeSubPanel)) { + using _t = void (StarPilotNavigationPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotNavigationPanel::closeSubPanel)) { *result = 0; return; } } { - using _t = void (FrogPilotNavigationPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotNavigationPanel::openSubPanel)) { + using _t = void (StarPilotNavigationPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotNavigationPanel::openSubPanel)) { *result = 1; return; } @@ -96,32 +96,32 @@ void FrogPilotNavigationPanel::qt_static_metacall(QObject *_o, QMetaObject::Call Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotNavigationPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotNavigationPanel.data, - qt_meta_data_FrogPilotNavigationPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotNavigationPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotNavigationPanel.data, + qt_meta_data_StarPilotNavigationPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotNavigationPanel::metaObject() const +const QMetaObject *StarPilotNavigationPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotNavigationPanel::qt_metacast(const char *_clname) +void *StarPilotNavigationPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotNavigationPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotNavigationPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotNavigationPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotNavigationPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -137,13 +137,13 @@ int FrogPilotNavigationPanel::qt_metacall(QMetaObject::Call _c, int _id, void ** } // SIGNAL 0 -void FrogPilotNavigationPanel::closeSubPanel() +void StarPilotNavigationPanel::closeSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } // SIGNAL 1 -void FrogPilotNavigationPanel::openSubPanel() +void StarPilotNavigationPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 1, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_sounds_settings.cc b/starpilot/ui/qt/offroad/moc_sounds_settings.cc similarity index 70% rename from frogpilot/ui/qt/offroad/moc_sounds_settings.cc rename to starpilot/ui/qt/offroad/moc_sounds_settings.cc index 1f986a08..0d51e65a 100644 --- a/frogpilot/ui/qt/offroad/moc_sounds_settings.cc +++ b/starpilot/ui/qt/offroad/moc_sounds_settings.cc @@ -20,27 +20,27 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotSoundsPanel_t { +struct qt_meta_stringdata_StarPilotSoundsPanel_t { QByteArrayData data[3]; char stringdata0[35]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotSoundsPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotSoundsPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotSoundsPanel_t qt_meta_stringdata_FrogPilotSoundsPanel = { +static const qt_meta_stringdata_StarPilotSoundsPanel_t qt_meta_stringdata_StarPilotSoundsPanel = { { -QT_MOC_LITERAL(0, 0, 20), // "FrogPilotSoundsPanel" +QT_MOC_LITERAL(0, 0, 20), // "StarPilotSoundsPanel" QT_MOC_LITERAL(1, 21, 12), // "openSubPanel" QT_MOC_LITERAL(2, 34, 0) // "" }, - "FrogPilotSoundsPanel\0openSubPanel\0" + "StarPilotSoundsPanel\0openSubPanel\0" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotSoundsPanel[] = { +static const uint qt_meta_data_StarPilotSoundsPanel[] = { // content: 8, // revision @@ -62,10 +62,10 @@ static const uint qt_meta_data_FrogPilotSoundsPanel[] = { 0 // eod }; -void FrogPilotSoundsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotSoundsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -74,8 +74,8 @@ void FrogPilotSoundsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotSoundsPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSoundsPanel::openSubPanel)) { + using _t = void (StarPilotSoundsPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSoundsPanel::openSubPanel)) { *result = 0; return; } @@ -84,32 +84,32 @@ void FrogPilotSoundsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotSoundsPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotSoundsPanel.data, - qt_meta_data_FrogPilotSoundsPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotSoundsPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotSoundsPanel.data, + qt_meta_data_StarPilotSoundsPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotSoundsPanel::metaObject() const +const QMetaObject *StarPilotSoundsPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotSoundsPanel::qt_metacast(const char *_clname) +void *StarPilotSoundsPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotSoundsPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotSoundsPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotSoundsPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotSoundsPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -125,7 +125,7 @@ int FrogPilotSoundsPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotSoundsPanel::openSubPanel() +void StarPilotSoundsPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_frogpilot_settings.cc b/starpilot/ui/qt/offroad/moc_starpilot_settings.cc similarity index 73% rename from frogpilot/ui/qt/offroad/moc_frogpilot_settings.cc rename to starpilot/ui/qt/offroad/moc_starpilot_settings.cc index b8513d1f..2b27a8e5 100644 --- a/frogpilot/ui/qt/offroad/moc_frogpilot_settings.cc +++ b/starpilot/ui/qt/offroad/moc_starpilot_settings.cc @@ -1,16 +1,16 @@ /**************************************************************************** -** Meta object code from reading C++ file 'frogpilot_settings.h' +** Meta object code from reading C++ file 'starpilot_settings.h' ** ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8) ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ -#include "frogpilot_settings.h" +#include "starpilot_settings.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'frogpilot_settings.h' doesn't include ." +#error "The header file 'starpilot_settings.h' doesn't include ." #elif Q_MOC_OUTPUT_REVISION != 67 #error "This file was generated using the moc from 5.12.8. It" #error "cannot be used with the include files from this version of Qt." @@ -20,18 +20,18 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotSettingsWindow_t { +struct qt_meta_stringdata_StarPilotSettingsWindow_t { QByteArrayData data[14]; char stringdata0[187]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotSettingsWindow_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotSettingsWindow_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotSettingsWindow_t qt_meta_stringdata_FrogPilotSettingsWindow = { +static const qt_meta_stringdata_StarPilotSettingsWindow_t qt_meta_stringdata_StarPilotSettingsWindow = { { -QT_MOC_LITERAL(0, 0, 23), // "FrogPilotSettingsWindow" +QT_MOC_LITERAL(0, 0, 23), // "StarPilotSettingsWindow" QT_MOC_LITERAL(1, 24, 13), // "closeSubPanel" QT_MOC_LITERAL(2, 38, 0), // "" QT_MOC_LITERAL(3, 39, 16), // "closeSubSubPanel" @@ -47,7 +47,7 @@ QT_MOC_LITERAL(12, 172, 6), // "metric" QT_MOC_LITERAL(13, 179, 7) // "bootRun" }, - "FrogPilotSettingsWindow\0closeSubPanel\0" + "StarPilotSettingsWindow\0closeSubPanel\0" "\0closeSubSubPanel\0closeSubSubSubPanel\0" "openPanel\0openSubPanel\0openSubSubPanel\0" "openSubSubSubPanel\0tuningLevelChanged\0" @@ -55,7 +55,7 @@ QT_MOC_LITERAL(13, 179, 7) // "bootRun" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotSettingsWindow[] = { +static const uint qt_meta_data_StarPilotSettingsWindow[] = { // content: 8, // revision @@ -95,10 +95,10 @@ static const uint qt_meta_data_FrogPilotSettingsWindow[] = { 0 // eod }; -void FrogPilotSettingsWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotSettingsWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->closeSubPanel(); break; @@ -116,64 +116,64 @@ void FrogPilotSettingsWindow::qt_static_metacall(QObject *_o, QMetaObject::Call } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotSettingsWindow::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSettingsWindow::closeSubPanel)) { + using _t = void (StarPilotSettingsWindow::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSettingsWindow::closeSubPanel)) { *result = 0; return; } } { - using _t = void (FrogPilotSettingsWindow::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSettingsWindow::closeSubSubPanel)) { + using _t = void (StarPilotSettingsWindow::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSettingsWindow::closeSubSubPanel)) { *result = 1; return; } } { - using _t = void (FrogPilotSettingsWindow::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSettingsWindow::closeSubSubSubPanel)) { + using _t = void (StarPilotSettingsWindow::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSettingsWindow::closeSubSubSubPanel)) { *result = 2; return; } } { - using _t = void (FrogPilotSettingsWindow::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSettingsWindow::openPanel)) { + using _t = void (StarPilotSettingsWindow::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSettingsWindow::openPanel)) { *result = 3; return; } } { - using _t = void (FrogPilotSettingsWindow::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSettingsWindow::openSubPanel)) { + using _t = void (StarPilotSettingsWindow::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSettingsWindow::openSubPanel)) { *result = 4; return; } } { - using _t = void (FrogPilotSettingsWindow::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSettingsWindow::openSubSubPanel)) { + using _t = void (StarPilotSettingsWindow::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSettingsWindow::openSubSubPanel)) { *result = 5; return; } } { - using _t = void (FrogPilotSettingsWindow::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSettingsWindow::openSubSubSubPanel)) { + using _t = void (StarPilotSettingsWindow::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSettingsWindow::openSubSubSubPanel)) { *result = 6; return; } } { - using _t = void (FrogPilotSettingsWindow::*)(int ); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSettingsWindow::tuningLevelChanged)) { + using _t = void (StarPilotSettingsWindow::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSettingsWindow::tuningLevelChanged)) { *result = 7; return; } } { - using _t = void (FrogPilotSettingsWindow::*)(bool , bool ); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotSettingsWindow::updateMetric)) { + using _t = void (StarPilotSettingsWindow::*)(bool , bool ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotSettingsWindow::updateMetric)) { *result = 8; return; } @@ -181,30 +181,30 @@ void FrogPilotSettingsWindow::qt_static_metacall(QObject *_o, QMetaObject::Call } } -QT_INIT_METAOBJECT const QMetaObject FrogPilotSettingsWindow::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotSettingsWindow::staticMetaObject = { { &QFrame::staticMetaObject, - qt_meta_stringdata_FrogPilotSettingsWindow.data, - qt_meta_data_FrogPilotSettingsWindow, + qt_meta_stringdata_StarPilotSettingsWindow.data, + qt_meta_data_StarPilotSettingsWindow, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotSettingsWindow::metaObject() const +const QMetaObject *StarPilotSettingsWindow::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotSettingsWindow::qt_metacast(const char *_clname) +void *StarPilotSettingsWindow::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotSettingsWindow.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotSettingsWindow.stringdata0)) return static_cast(this); return QFrame::qt_metacast(_clname); } -int FrogPilotSettingsWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotSettingsWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QFrame::qt_metacall(_c, _id, _a); if (_id < 0) @@ -222,56 +222,56 @@ int FrogPilotSettingsWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_ } // SIGNAL 0 -void FrogPilotSettingsWindow::closeSubPanel() +void StarPilotSettingsWindow::closeSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } // SIGNAL 1 -void FrogPilotSettingsWindow::closeSubSubPanel() +void StarPilotSettingsWindow::closeSubSubPanel() { QMetaObject::activate(this, &staticMetaObject, 1, nullptr); } // SIGNAL 2 -void FrogPilotSettingsWindow::closeSubSubSubPanel() +void StarPilotSettingsWindow::closeSubSubSubPanel() { QMetaObject::activate(this, &staticMetaObject, 2, nullptr); } // SIGNAL 3 -void FrogPilotSettingsWindow::openPanel() +void StarPilotSettingsWindow::openPanel() { QMetaObject::activate(this, &staticMetaObject, 3, nullptr); } // SIGNAL 4 -void FrogPilotSettingsWindow::openSubPanel() +void StarPilotSettingsWindow::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 4, nullptr); } // SIGNAL 5 -void FrogPilotSettingsWindow::openSubSubPanel() +void StarPilotSettingsWindow::openSubSubPanel() { QMetaObject::activate(this, &staticMetaObject, 5, nullptr); } // SIGNAL 6 -void FrogPilotSettingsWindow::openSubSubSubPanel() +void StarPilotSettingsWindow::openSubSubSubPanel() { QMetaObject::activate(this, &staticMetaObject, 6, nullptr); } // SIGNAL 7 -void FrogPilotSettingsWindow::tuningLevelChanged(int _t1) +void StarPilotSettingsWindow::tuningLevelChanged(int _t1) { void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)) }; QMetaObject::activate(this, &staticMetaObject, 7, _a); } // SIGNAL 8 -void FrogPilotSettingsWindow::updateMetric(bool _t1, bool _t2) +void StarPilotSettingsWindow::updateMetric(bool _t1, bool _t2) { void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)), const_cast(reinterpret_cast(&_t2)) }; QMetaObject::activate(this, &staticMetaObject, 8, _a); diff --git a/frogpilot/ui/qt/offroad/moc_theme_settings.cc b/starpilot/ui/qt/offroad/moc_theme_settings.cc similarity index 70% rename from frogpilot/ui/qt/offroad/moc_theme_settings.cc rename to starpilot/ui/qt/offroad/moc_theme_settings.cc index 2aed0bbb..f57592f4 100644 --- a/frogpilot/ui/qt/offroad/moc_theme_settings.cc +++ b/starpilot/ui/qt/offroad/moc_theme_settings.cc @@ -20,27 +20,27 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotThemesPanel_t { +struct qt_meta_stringdata_StarPilotThemesPanel_t { QByteArrayData data[3]; char stringdata0[35]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotThemesPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotThemesPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotThemesPanel_t qt_meta_stringdata_FrogPilotThemesPanel = { +static const qt_meta_stringdata_StarPilotThemesPanel_t qt_meta_stringdata_StarPilotThemesPanel = { { -QT_MOC_LITERAL(0, 0, 20), // "FrogPilotThemesPanel" +QT_MOC_LITERAL(0, 0, 20), // "StarPilotThemesPanel" QT_MOC_LITERAL(1, 21, 12), // "openSubPanel" QT_MOC_LITERAL(2, 34, 0) // "" }, - "FrogPilotThemesPanel\0openSubPanel\0" + "StarPilotThemesPanel\0openSubPanel\0" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotThemesPanel[] = { +static const uint qt_meta_data_StarPilotThemesPanel[] = { // content: 8, // revision @@ -62,10 +62,10 @@ static const uint qt_meta_data_FrogPilotThemesPanel[] = { 0 // eod }; -void FrogPilotThemesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotThemesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -74,8 +74,8 @@ void FrogPilotThemesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotThemesPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotThemesPanel::openSubPanel)) { + using _t = void (StarPilotThemesPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotThemesPanel::openSubPanel)) { *result = 0; return; } @@ -84,32 +84,32 @@ void FrogPilotThemesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotThemesPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotThemesPanel.data, - qt_meta_data_FrogPilotThemesPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotThemesPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotThemesPanel.data, + qt_meta_data_StarPilotThemesPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotThemesPanel::metaObject() const +const QMetaObject *StarPilotThemesPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotThemesPanel::qt_metacast(const char *_clname) +void *StarPilotThemesPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotThemesPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotThemesPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotThemesPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotThemesPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -125,7 +125,7 @@ int FrogPilotThemesPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotThemesPanel::openSubPanel() +void StarPilotThemesPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_utilities.cc b/starpilot/ui/qt/offroad/moc_utilities.cc similarity index 65% rename from frogpilot/ui/qt/offroad/moc_utilities.cc rename to starpilot/ui/qt/offroad/moc_utilities.cc index f080c00e..c35509e9 100644 --- a/frogpilot/ui/qt/offroad/moc_utilities.cc +++ b/starpilot/ui/qt/offroad/moc_utilities.cc @@ -20,25 +20,25 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotUtilitiesPanel_t { +struct qt_meta_stringdata_StarPilotUtilitiesPanel_t { QByteArrayData data[1]; char stringdata0[24]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotUtilitiesPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotUtilitiesPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotUtilitiesPanel_t qt_meta_stringdata_FrogPilotUtilitiesPanel = { +static const qt_meta_stringdata_StarPilotUtilitiesPanel_t qt_meta_stringdata_StarPilotUtilitiesPanel = { { -QT_MOC_LITERAL(0, 0, 23) // "FrogPilotUtilitiesPanel" +QT_MOC_LITERAL(0, 0, 23) // "StarPilotUtilitiesPanel" }, - "FrogPilotUtilitiesPanel" + "StarPilotUtilitiesPanel" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotUtilitiesPanel[] = { +static const uint qt_meta_data_StarPilotUtilitiesPanel[] = { // content: 8, // revision @@ -54,7 +54,7 @@ static const uint qt_meta_data_FrogPilotUtilitiesPanel[] = { 0 // eod }; -void FrogPilotUtilitiesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotUtilitiesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { Q_UNUSED(_o); Q_UNUSED(_id); @@ -62,32 +62,32 @@ void FrogPilotUtilitiesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotUtilitiesPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotUtilitiesPanel.data, - qt_meta_data_FrogPilotUtilitiesPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotUtilitiesPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotUtilitiesPanel.data, + qt_meta_data_StarPilotUtilitiesPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotUtilitiesPanel::metaObject() const +const QMetaObject *StarPilotUtilitiesPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotUtilitiesPanel::qt_metacast(const char *_clname) +void *StarPilotUtilitiesPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotUtilitiesPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotUtilitiesPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotUtilitiesPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotUtilitiesPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); return _id; } QT_WARNING_POP diff --git a/frogpilot/ui/qt/offroad/moc_vehicle_settings.cc b/starpilot/ui/qt/offroad/moc_vehicle_settings.cc similarity index 70% rename from frogpilot/ui/qt/offroad/moc_vehicle_settings.cc rename to starpilot/ui/qt/offroad/moc_vehicle_settings.cc index 1e6d39fe..496a53f4 100644 --- a/frogpilot/ui/qt/offroad/moc_vehicle_settings.cc +++ b/starpilot/ui/qt/offroad/moc_vehicle_settings.cc @@ -20,28 +20,28 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotVehiclesPanel_t { +struct qt_meta_stringdata_StarPilotVehiclesPanel_t { QByteArrayData data[3]; char stringdata0[37]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotVehiclesPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotVehiclesPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotVehiclesPanel_t qt_meta_stringdata_FrogPilotVehiclesPanel = { +static const qt_meta_stringdata_StarPilotVehiclesPanel_t qt_meta_stringdata_StarPilotVehiclesPanel = { { -QT_MOC_LITERAL(0, 0, 22), // "FrogPilotVehiclesPanel" +QT_MOC_LITERAL(0, 0, 22), // "StarPilotVehiclesPanel" QT_MOC_LITERAL(1, 23, 12), // "openSubPanel" QT_MOC_LITERAL(2, 36, 0) // "" }, - "FrogPilotVehiclesPanel\0openSubPanel\0" + "StarPilotVehiclesPanel\0openSubPanel\0" "" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotVehiclesPanel[] = { +static const uint qt_meta_data_StarPilotVehiclesPanel[] = { // content: 8, // revision @@ -63,10 +63,10 @@ static const uint qt_meta_data_FrogPilotVehiclesPanel[] = { 0 // eod }; -void FrogPilotVehiclesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotVehiclesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -75,8 +75,8 @@ void FrogPilotVehiclesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _ } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotVehiclesPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotVehiclesPanel::openSubPanel)) { + using _t = void (StarPilotVehiclesPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotVehiclesPanel::openSubPanel)) { *result = 0; return; } @@ -85,32 +85,32 @@ void FrogPilotVehiclesPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _ Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotVehiclesPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotVehiclesPanel.data, - qt_meta_data_FrogPilotVehiclesPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotVehiclesPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotVehiclesPanel.data, + qt_meta_data_StarPilotVehiclesPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotVehiclesPanel::metaObject() const +const QMetaObject *StarPilotVehiclesPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotVehiclesPanel::qt_metacast(const char *_clname) +void *StarPilotVehiclesPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotVehiclesPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotVehiclesPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotVehiclesPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotVehiclesPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -126,7 +126,7 @@ int FrogPilotVehiclesPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a } // SIGNAL 0 -void FrogPilotVehiclesPanel::openSubPanel() +void StarPilotVehiclesPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_visual_settings.cc b/starpilot/ui/qt/offroad/moc_visual_settings.cc similarity index 70% rename from frogpilot/ui/qt/offroad/moc_visual_settings.cc rename to starpilot/ui/qt/offroad/moc_visual_settings.cc index 90adadcc..b65ed4b1 100644 --- a/frogpilot/ui/qt/offroad/moc_visual_settings.cc +++ b/starpilot/ui/qt/offroad/moc_visual_settings.cc @@ -20,29 +20,29 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotVisualsPanel_t { +struct qt_meta_stringdata_StarPilotVisualsPanel_t { QByteArrayData data[4]; char stringdata0[52]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotVisualsPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotVisualsPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotVisualsPanel_t qt_meta_stringdata_FrogPilotVisualsPanel = { +static const qt_meta_stringdata_StarPilotVisualsPanel_t qt_meta_stringdata_StarPilotVisualsPanel = { { -QT_MOC_LITERAL(0, 0, 21), // "FrogPilotVisualsPanel" +QT_MOC_LITERAL(0, 0, 21), // "StarPilotVisualsPanel" QT_MOC_LITERAL(1, 22, 12), // "openSubPanel" QT_MOC_LITERAL(2, 35, 0), // "" QT_MOC_LITERAL(3, 36, 15) // "openSubSubPanel" }, - "FrogPilotVisualsPanel\0openSubPanel\0\0" + "StarPilotVisualsPanel\0openSubPanel\0\0" "openSubSubPanel" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotVisualsPanel[] = { +static const uint qt_meta_data_StarPilotVisualsPanel[] = { // content: 8, // revision @@ -66,10 +66,10 @@ static const uint qt_meta_data_FrogPilotVisualsPanel[] = { 0 // eod }; -void FrogPilotVisualsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotVisualsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->openSubPanel(); break; @@ -79,15 +79,15 @@ void FrogPilotVisualsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotVisualsPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotVisualsPanel::openSubPanel)) { + using _t = void (StarPilotVisualsPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotVisualsPanel::openSubPanel)) { *result = 0; return; } } { - using _t = void (FrogPilotVisualsPanel::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotVisualsPanel::openSubSubPanel)) { + using _t = void (StarPilotVisualsPanel::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotVisualsPanel::openSubSubPanel)) { *result = 1; return; } @@ -96,32 +96,32 @@ void FrogPilotVisualsPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotVisualsPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotVisualsPanel.data, - qt_meta_data_FrogPilotVisualsPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotVisualsPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotVisualsPanel.data, + qt_meta_data_StarPilotVisualsPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotVisualsPanel::metaObject() const +const QMetaObject *StarPilotVisualsPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotVisualsPanel::qt_metacast(const char *_clname) +void *StarPilotVisualsPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotVisualsPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotVisualsPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotVisualsPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotVisualsPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -137,13 +137,13 @@ int FrogPilotVisualsPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotVisualsPanel::openSubPanel() +void StarPilotVisualsPanel::openSubPanel() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } // SIGNAL 1 -void FrogPilotVisualsPanel::openSubSubPanel() +void StarPilotVisualsPanel::openSubSubPanel() { QMetaObject::activate(this, &staticMetaObject, 1, nullptr); } diff --git a/frogpilot/ui/qt/offroad/moc_wheel_settings.cc b/starpilot/ui/qt/offroad/moc_wheel_settings.cc similarity index 65% rename from frogpilot/ui/qt/offroad/moc_wheel_settings.cc rename to starpilot/ui/qt/offroad/moc_wheel_settings.cc index cd8d6593..9f76e7b4 100644 --- a/frogpilot/ui/qt/offroad/moc_wheel_settings.cc +++ b/starpilot/ui/qt/offroad/moc_wheel_settings.cc @@ -20,25 +20,25 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotWheelPanel_t { +struct qt_meta_stringdata_StarPilotWheelPanel_t { QByteArrayData data[1]; char stringdata0[20]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotWheelPanel_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotWheelPanel_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotWheelPanel_t qt_meta_stringdata_FrogPilotWheelPanel = { +static const qt_meta_stringdata_StarPilotWheelPanel_t qt_meta_stringdata_StarPilotWheelPanel = { { -QT_MOC_LITERAL(0, 0, 19) // "FrogPilotWheelPanel" +QT_MOC_LITERAL(0, 0, 19) // "StarPilotWheelPanel" }, - "FrogPilotWheelPanel" + "StarPilotWheelPanel" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotWheelPanel[] = { +static const uint qt_meta_data_StarPilotWheelPanel[] = { // content: 8, // revision @@ -54,7 +54,7 @@ static const uint qt_meta_data_FrogPilotWheelPanel[] = { 0 // eod }; -void FrogPilotWheelPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotWheelPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { Q_UNUSED(_o); Q_UNUSED(_id); @@ -62,32 +62,32 @@ void FrogPilotWheelPanel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotWheelPanel::staticMetaObject = { { - &FrogPilotListWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotWheelPanel.data, - qt_meta_data_FrogPilotWheelPanel, +QT_INIT_METAOBJECT const QMetaObject StarPilotWheelPanel::staticMetaObject = { { + &StarPilotListWidget::staticMetaObject, + qt_meta_stringdata_StarPilotWheelPanel.data, + qt_meta_data_StarPilotWheelPanel, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotWheelPanel::metaObject() const +const QMetaObject *StarPilotWheelPanel::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotWheelPanel::qt_metacast(const char *_clname) +void *StarPilotWheelPanel::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotWheelPanel.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotWheelPanel.stringdata0)) return static_cast(this); - return FrogPilotListWidget::qt_metacast(_clname); + return StarPilotListWidget::qt_metacast(_clname); } -int FrogPilotWheelPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotWheelPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotListWidget::qt_metacall(_c, _id, _a); + _id = StarPilotListWidget::qt_metacall(_c, _id, _a); return _id; } QT_WARNING_POP diff --git a/frogpilot/ui/qt/offroad/model_settings.cc b/starpilot/ui/qt/offroad/model_settings.cc similarity index 91% rename from frogpilot/ui/qt/offroad/model_settings.cc rename to starpilot/ui/qt/offroad/model_settings.cc index 1f5a3154..5768139a 100644 --- a/frogpilot/ui/qt/offroad/model_settings.cc +++ b/starpilot/ui/qt/offroad/model_settings.cc @@ -1,5 +1,5 @@ -#include "frogpilot/ui/qt/offroad/model_settings.h" -#include "frogpilot/ui/qt/offroad/expandable_multi_option_dialog.h" +#include "starpilot/ui/qt/offroad/model_settings.h" +#include "starpilot/ui/qt/offroad/expandable_multi_option_dialog.h" #include #include #include @@ -11,7 +11,7 @@ #include "system/hardware/hw.h" -FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : FrogPilotListWidget(parent), +StarPilotModelPanel::StarPilotModelPanel(StarPilotSettingsWindow *parent) : StarPilotListWidget(parent), allModelsDownloaded(false), allModelsDownloading(false), cancellingDownload(false), @@ -25,20 +25,20 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog tuningLevel(0), parent(parent) { if (Hardware::PC()) { - modelDir.setPath(QString::fromStdString(Path::comma_home() + "/frogpilot/data/models/")); + modelDir.setPath(QString::fromStdString(Path::comma_home() + "/starpilot/data/models/")); } modelDir.mkpath("."); QStackedLayout *modelLayout = new QStackedLayout(); addItem(modelLayout); - FrogPilotListWidget *modelList = new FrogPilotListWidget(this); + StarPilotListWidget *modelList = new StarPilotListWidget(this); ScrollView *modelPanel = new ScrollView(modelList, this); modelLayout->addWidget(modelPanel); - FrogPilotListWidget *modelLabelsList = new FrogPilotListWidget(this); + StarPilotListWidget *modelLabelsList = new StarPilotListWidget(this); ScrollView *modelLabelsPanel = new ScrollView(modelLabelsList, this); @@ -56,15 +56,15 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog {"SelectModel", tr("Select Driving Model"), tr("Select the active driving model."), ""}, }; - FrogPilotParamValueButtonControl *recoveryPowerToggle = nullptr; - FrogPilotParamValueButtonControl *stopDistanceToggle = nullptr; + StarPilotParamValueButtonControl *recoveryPowerToggle = nullptr; + StarPilotParamValueButtonControl *stopDistanceToggle = nullptr; for (const auto &[param, title, desc, icon] : modelToggles) { AbstractControl *modelToggle; if (param == "DeleteModel") { - deleteModelButton = new FrogPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DELETE ALL")}); - QObject::connect(deleteModelButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + deleteModelButton = new StarPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DELETE ALL")}); + QObject::connect(deleteModelButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { QMap deletableModelsMap = getDeletableModelDisplayNames(); noModelsDownloaded = deletableModelsMap.isEmpty(); @@ -145,8 +145,8 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog }); modelToggle = deleteModelButton; } else if (param == "DownloadModel") { - downloadModelButton = new FrogPilotButtonsControl(title, desc, icon, {tr("DOWNLOAD"), tr("DOWNLOAD ALL")}); - QObject::connect(downloadModelButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + downloadModelButton = new StarPilotButtonsControl(title, desc, icon, {tr("DOWNLOAD"), tr("DOWNLOAD ALL")}); + QObject::connect(downloadModelButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { if (id == 0) { if (modelDownloading) { params_memory.putBool("CancelModelDownload", true); @@ -262,8 +262,8 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog }); modelToggle = downloadModelButton; } else if (param == "ManageBlacklistedModels") { - FrogPilotButtonsControl *blacklistBtn = new FrogPilotButtonsControl(title, desc, icon, {tr("ADD"), tr("REMOVE"), tr("REMOVE ALL")}); - QObject::connect(blacklistBtn, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + StarPilotButtonsControl *blacklistBtn = new StarPilotButtonsControl(title, desc, icon, {tr("ADD"), tr("REMOVE"), tr("REMOVE ALL")}); + QObject::connect(blacklistBtn, &StarPilotButtonsControl::buttonClicked, [this](int id) { QStringList blacklistedModels = QString::fromStdString(params.get("BlacklistedModels")).split(","); blacklistedModels.removeAll(""); @@ -329,17 +329,17 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog } } } else if (id == 2) { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to remove all of your blacklisted models?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to remove all of your blacklisted models?"), this)) { params.remove("BlacklistedModels"); } } }); modelToggle = blacklistBtn; } else if (param == "ManageScores") { - FrogPilotButtonsControl *manageScoresBtn = new FrogPilotButtonsControl(title, desc, icon, {tr("RESET"), tr("VIEW")}); - QObject::connect(manageScoresBtn, &FrogPilotButtonsControl::buttonClicked, [this, modelLayout, modelLabelsList, modelLabelsPanel](int id) { + StarPilotButtonsControl *manageScoresBtn = new StarPilotButtonsControl(title, desc, icon, {tr("RESET"), tr("VIEW")}); + QObject::connect(manageScoresBtn, &StarPilotButtonsControl::buttonClicked, [this, modelLayout, modelLabelsList, modelLabelsPanel](int id) { if (id == 0) { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to reset all of your model drives and scores?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to reset all of your model drives and scores?"), this)) { params.remove("ModelDrivesAndScores"); } } else if (id == 1) { @@ -444,10 +444,10 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog } } - updateFrogPilotToggles(); + updateStarPilotToggles(); if (started) { - if (FrogPilotConfirmationDialog::toggleReboot(this)) { + if (StarPilotConfirmationDialog::toggleReboot(this)) { Hardware::reboot(); } } @@ -462,12 +462,12 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog } else if (param == "RecoveryPower") { std::vector recoveryPowerButton{"Reset"}; - modelToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0.5, 2.0, QString(), std::map(), 0.1, false, {}, recoveryPowerButton, false, false); - recoveryPowerToggle = static_cast(modelToggle); + modelToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, 0.5, 2.0, QString(), std::map(), 0.1, false, {}, recoveryPowerButton, false, false); + recoveryPowerToggle = static_cast(modelToggle); } else if (param == "StopDistance") { std::vector stopDistanceButton{"Reset"}; - modelToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 4.0, 10.0, QString(), std::map(), 0.1, false, {}, stopDistanceButton, false, false); - stopDistanceToggle = static_cast(modelToggle); + modelToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, 4.0, 10.0, QString(), std::map(), 0.1, false, {}, stopDistanceButton, false, false); + stopDistanceToggle = static_cast(modelToggle); } else { modelToggle = new ParamControl(param, title, desc, icon); } @@ -485,7 +485,7 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog updateToggles(); if (state && !allModelsDownloaded) { - if (FrogPilotConfirmationDialog::yesorno(tr("The \"Model Randomizer\" only works with downloaded models. Do you want to download all the driving models?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("The \"Model Randomizer\" only works with downloaded models. Do you want to download all the driving models?"), this)) { params_memory.putBool("DownloadAllModels", true); params_memory.put("ModelDownloadProgress", "Downloading..."); @@ -497,30 +497,30 @@ FrogPilotModelPanel::FrogPilotModelPanel(FrogPilotSettingsWindow *parent) : Frog }); if (recoveryPowerToggle) { - QObject::connect(recoveryPowerToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this, recoveryPowerToggle]() { + QObject::connect(recoveryPowerToggle, &StarPilotParamValueButtonControl::buttonClicked, [this, recoveryPowerToggle]() { if (ConfirmationDialog::confirm(tr("Are you sure you want to reset your Recovery Power to the default of 1.0?"), tr("Reset"), this)) { params.putFloat("RecoveryPower", 1.0); recoveryPowerToggle->refresh(); - updateFrogPilotToggles(); + updateStarPilotToggles(); } }); } if (stopDistanceToggle) { - QObject::connect(stopDistanceToggle, &FrogPilotParamValueButtonControl::buttonClicked, [this, stopDistanceToggle]() { + QObject::connect(stopDistanceToggle, &StarPilotParamValueButtonControl::buttonClicked, [this, stopDistanceToggle]() { if (ConfirmationDialog::confirm(tr("Are you sure you want to reset your Stop Distance to the default of 6 meters?"), tr("Reset"), this)) { params.putFloat("StopDistance", 6.0); stopDistanceToggle->refresh(); - updateFrogPilotToggles(); + updateStarPilotToggles(); } }); } - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [modelLayout, modelPanel] {modelLayout->setCurrentWidget(modelPanel);}); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotModelPanel::updateState); + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [modelLayout, modelPanel] {modelLayout->setCurrentWidget(modelPanel);}); + QObject::connect(uiState(), &UIState::uiUpdate, this, &StarPilotModelPanel::updateState); } -bool FrogPilotModelPanel::isModelInstalled(const QString &key) const { +bool StarPilotModelPanel::isModelInstalled(const QString &key) const { if (key.isEmpty()) { return false; } @@ -576,7 +576,7 @@ bool FrogPilotModelPanel::isModelInstalled(const QString &key) const { return foundAny; } -QMap FrogPilotModelPanel::getDeletableModelDisplayNames() { +QMap StarPilotModelPanel::getDeletableModelDisplayNames() { QMap deletable; QString defaultModelKey = QString::fromStdString(params.getKeyDefaultValue("Model").value()); @@ -613,11 +613,11 @@ QMap FrogPilotModelPanel::getDeletableModelDisplayNames() { return deletable; } -void FrogPilotModelPanel::showEvent(QShowEvent *event) { - FrogPilotUIState &fs = *frogpilotUIState(); +void StarPilotModelPanel::showEvent(QShowEvent *event) { + StarPilotUIState &fs = *starpilotUIState(); UIState &s = *uiState(); - frogpilotToggleLevels = parent->frogpilotToggleLevels; + starpilotToggleLevels = parent->starpilotToggleLevels; tuningLevel = parent->tuningLevel; allModelsDownloading = params_memory.getBool("DownloadAllModels"); @@ -702,26 +702,26 @@ void FrogPilotModelPanel::showEvent(QShowEvent *event) { noModelsDownloaded = getDeletableModelDisplayNames().isEmpty(); - bool parked = !s.scene.started || fs.frogpilot_scene.parked || parent->isFrogsGoMoo; + bool parked = !s.scene.started || fs.starpilot_scene.parked || parent->isFrogsGoMoo; deleteModelButton->setEnabled(!(allModelsDownloading || modelDownloading || noModelsDownloaded)); - downloadModelButton->setEnabledButtons(0, !allModelsDownloaded && !allModelsDownloading && !cancellingDownload && fs.frogpilot_scene.online && parked); - downloadModelButton->setEnabledButtons(1, !allModelsDownloaded && !modelDownloading && !cancellingDownload && fs.frogpilot_scene.online && parked); + downloadModelButton->setEnabledButtons(0, !allModelsDownloaded && !allModelsDownloading && !cancellingDownload && fs.starpilot_scene.online && parked); + downloadModelButton->setEnabledButtons(1, !allModelsDownloaded && !modelDownloading && !cancellingDownload && fs.starpilot_scene.online && parked); - downloadModelButton->setValue(fs.frogpilot_scene.online ? (parked ? "" : "Not parked") : tr("Offline...")); + downloadModelButton->setValue(fs.starpilot_scene.online ? (parked ? "" : "Not parked") : tr("Offline...")); started = s.scene.started; updateToggles(); } -void FrogPilotModelPanel::updateState(const UIState &s, const FrogPilotUIState &fs) { +void StarPilotModelPanel::updateState(const UIState &s, const StarPilotUIState &fs) { if (!isVisible() || finalizingDownload) { return; } - bool parked = !started || fs.frogpilot_scene.parked || parent->isFrogsGoMoo; + bool parked = !started || fs.starpilot_scene.parked || parent->isFrogsGoMoo; if (allModelsDownloading || modelDownloading) { QString progress = QString::fromStdString(params_memory.get("ModelDownloadProgress")); @@ -752,7 +752,7 @@ void FrogPilotModelPanel::updateState(const UIState &s, const FrogPilotUIState & }); } } else { - downloadModelButton->setValue(fs.frogpilot_scene.online ? (parked ? "" : "Not parked") : tr("Offline...")); + downloadModelButton->setValue(fs.starpilot_scene.online ? (parked ? "" : "Not parked") : tr("Offline...")); } deleteModelButton->setEnabled(!(allModelsDownloading || modelDownloading || noModelsDownloaded)); @@ -760,8 +760,8 @@ void FrogPilotModelPanel::updateState(const UIState &s, const FrogPilotUIState & downloadModelButton->setText(0, modelDownloading ? tr("CANCEL") : tr("DOWNLOAD")); downloadModelButton->setText(1, allModelsDownloading ? tr("CANCEL") : tr("DOWNLOAD ALL")); - downloadModelButton->setEnabledButtons(0, !allModelsDownloaded && !allModelsDownloading && !cancellingDownload && fs.frogpilot_scene.online && parked); - downloadModelButton->setEnabledButtons(1, !allModelsDownloaded && !modelDownloading && !cancellingDownload && fs.frogpilot_scene.online && parked); + downloadModelButton->setEnabledButtons(0, !allModelsDownloaded && !allModelsDownloading && !cancellingDownload && fs.starpilot_scene.online && parked); + downloadModelButton->setEnabledButtons(1, !allModelsDownloaded && !modelDownloading && !cancellingDownload && fs.starpilot_scene.online && parked); downloadModelButton->setVisibleButton(0, !allModelsDownloading); downloadModelButton->setVisibleButton(1, !modelDownloading); @@ -771,7 +771,7 @@ void FrogPilotModelPanel::updateState(const UIState &s, const FrogPilotUIState & parent->keepScreenOn = allModelsDownloading || modelDownloading; } -void FrogPilotModelPanel::updateModelLabels(FrogPilotListWidget *labelsList) { +void StarPilotModelPanel::updateModelLabels(StarPilotListWidget *labelsList) { labelsList->clear(); QJsonObject modelDrivesAndScores = QJsonDocument::fromJson(QString::fromStdString(params.get("ModelDrivesAndScores")).toUtf8()).object(); @@ -793,9 +793,9 @@ void FrogPilotModelPanel::updateModelLabels(FrogPilotListWidget *labelsList) { } } -void FrogPilotModelPanel::updateToggles() { +void StarPilotModelPanel::updateToggles() { for (auto &[key, toggle] : toggles) { - bool setVisible = tuningLevel >= frogpilotToggleLevels[key].toDouble(); + bool setVisible = tuningLevel >= starpilotToggleLevels[key].toDouble(); if (key == "ManageBlacklistedModels" || key == "ManageScores") { setVisible &= params.getBool("ModelRandomizer"); diff --git a/frogpilot/ui/qt/offroad/model_settings.h b/starpilot/ui/qt/offroad/model_settings.h similarity index 66% rename from frogpilot/ui/qt/offroad/model_settings.h rename to starpilot/ui/qt/offroad/model_settings.h index 1eb005fa..7526cd54 100644 --- a/frogpilot/ui/qt/offroad/model_settings.h +++ b/starpilot/ui/qt/offroad/model_settings.h @@ -2,13 +2,13 @@ #include -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotModelPanel : public FrogPilotListWidget { +class StarPilotModelPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotModelPanel(FrogPilotSettingsWindow *parent); + explicit StarPilotModelPanel(StarPilotSettingsWindow *parent); signals: void openSubPanel(); @@ -17,8 +17,8 @@ protected: void showEvent(QShowEvent *event) override; private: - void updateModelLabels(FrogPilotListWidget *labelsList); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateModelLabels(StarPilotListWidget *labelsList); + void updateState(const UIState &s, const StarPilotUIState &fs); void updateToggles(); bool isModelInstalled(const QString &key) const; QMap getDeletableModelDisplayNames(); @@ -40,18 +40,18 @@ private: ButtonControl *selectModelButton; - FrogPilotButtonsControl *deleteModelButton; - FrogPilotButtonsControl *downloadModelButton; - FrogPilotButtonsControl *updateTinygradButton; + StarPilotButtonsControl *deleteModelButton; + StarPilotButtonsControl *downloadModelButton; + StarPilotButtonsControl *updateTinygradButton; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; Params params; Params params_memory{"", true}; QDir modelDir{"/data/models/"}; - QJsonObject frogpilotToggleLevels; + QJsonObject starpilotToggleLevels; QMap modelFileToNameMap; QMap modelFileToNameMapProcessed; diff --git a/frogpilot/ui/qt/offroad/navigation_settings.cc b/starpilot/ui/qt/offroad/navigation_settings.cc similarity index 81% rename from frogpilot/ui/qt/offroad/navigation_settings.cc rename to starpilot/ui/qt/offroad/navigation_settings.cc index 4f787858..cb9c33bb 100644 --- a/frogpilot/ui/qt/offroad/navigation_settings.cc +++ b/starpilot/ui/qt/offroad/navigation_settings.cc @@ -1,6 +1,6 @@ -#include "frogpilot/ui/qt/offroad/navigation_settings.h" +#include "starpilot/ui/qt/offroad/navigation_settings.h" -FrogPilotNavigationPanel::FrogPilotNavigationPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotNavigationPanel::StarPilotNavigationPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; networkManager = new QNetworkAccessManager(this); @@ -8,15 +8,15 @@ FrogPilotNavigationPanel::FrogPilotNavigationPanel(FrogPilotSettingsWindow *pare primelessLayout = new QStackedLayout(); addItem(primelessLayout); - FrogPilotListWidget *settingsList = new FrogPilotListWidget(this); + StarPilotListWidget *settingsList = new StarPilotListWidget(this); ipLabel = new LabelControl(tr("Manage Your Settings At"), tr("Offline...")); settingsList->addItem(ipLabel); - publicMapboxKeyControl = new FrogPilotButtonsControl(tr("Public Mapbox Key"), tr("Manage your Public Mapbox Key."), "", {tr("ADD"), tr("TEST")}); - QObject::connect(publicMapboxKeyControl, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + publicMapboxKeyControl = new StarPilotButtonsControl(tr("Public Mapbox Key"), tr("Manage your Public Mapbox Key."), "", {tr("ADD"), tr("TEST")}); + QObject::connect(publicMapboxKeyControl, &StarPilotButtonsControl::buttonClicked, [this](int id) { if (id == 0) { if (mapboxPublicKeySet) { - if (FrogPilotConfirmationDialog::yesorno(tr("Remove your Public Mapbox Key?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Remove your Public Mapbox Key?"), this)) { params.remove("MapboxPublicKey"); updateButtons(); @@ -58,11 +58,11 @@ FrogPilotNavigationPanel::FrogPilotNavigationPanel(FrogPilotSettingsWindow *pare }); settingsList->addItem(publicMapboxKeyControl); - secretMapboxKeyControl = new FrogPilotButtonsControl(tr("Secret Mapbox Key"), tr("Manage your Secret Mapbox Key."), "", {tr("ADD"), tr("TEST")}); - QObject::connect(secretMapboxKeyControl, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + secretMapboxKeyControl = new StarPilotButtonsControl(tr("Secret Mapbox Key"), tr("Manage your Secret Mapbox Key."), "", {tr("ADD"), tr("TEST")}); + QObject::connect(secretMapboxKeyControl, &StarPilotButtonsControl::buttonClicked, [this](int id) { if (id == 0) { if (mapboxSecretKeySet) { - if (FrogPilotConfirmationDialog::yesorno(tr("Remove your Secret Mapbox Key?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Remove your Secret Mapbox Key?"), this)) { params.remove("MapboxSecretKey"); updateButtons(); @@ -115,17 +115,17 @@ FrogPilotNavigationPanel::FrogPilotNavigationPanel(FrogPilotSettingsWindow *pare settingsList->addItem(setupButton); std::vector filterButtonNames{tr("CANCEL"), tr("Manually Update Speed Limits")}; - updateSpeedLimitsToggle = new FrogPilotButtonControl("SpeedLimitFiller", tr("Speed Limit Filler"), + updateSpeedLimitsToggle = new StarPilotButtonControl("SpeedLimitFiller", tr("Speed Limit Filler"), tr("Automatically collect missing or incorrect speed limits while you drive using speeds limits sourced from your dashboard (if supported), " "Mapbox, and \"Navigate on openpilot\".

" - "When you're parked and connected to Wi-Fi, FrogPilot will automatically processes this data into a file " - "to be used with the tool located at \"SpeedLimitFiller.frogpilot.com\".

" + "When you're parked and connected to Wi-Fi, StarPilot will automatically process this data into a file " + "to be used with the \"Speed Limit Filler\" tool in \"The Pond\".

" "You can download this file from \"The Pond\" in the \"Download Speed Limits\" menu.

" - "Need a step-by-step guide? Visit #speed-limit-filler in the FrogPilot Discord!"), + "Need a step-by-step guide? Visit #speed-limit-filler in the StarPilot Discord!"), "", filterButtonNames); - QObject::connect(updateSpeedLimitsToggle, &FrogPilotButtonControl::buttonClicked, [this](int id) { + QObject::connect(updateSpeedLimitsToggle, &StarPilotButtonControl::buttonClicked, [this](int id) { if (id == 0) { - if (FrogPilotConfirmationDialog::yesorno(tr("Cancel the speed-limit update?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Cancel the speed-limit update?"), this)) { updatingLimits = false; updateSpeedLimitsToggle->setEnabledButton(0, false); @@ -172,7 +172,7 @@ FrogPilotNavigationPanel::FrogPilotNavigationPanel(FrogPilotSettingsWindow *pare updateSpeedLimitsToggle->setVisibleButton(0, true); updateSpeedLimitsToggle->setVisibleButton(1, false); - if (FrogPilotConfirmationDialog::yesorno(tr("This process takes a while. It's recommended to start when you're done driving and connected to stable Wi-Fi. Continue?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("This process takes a while. It's recommended to start when you're done driving and connected to stable Wi-Fi. Continue?"), this)) { updatingLimits = true; updateSpeedLimitsToggle->setValue("Calculating..."); @@ -198,7 +198,7 @@ FrogPilotNavigationPanel::FrogPilotNavigationPanel(FrogPilotSettingsWindow *pare ScrollView *instructionsPanel = new ScrollView(imageLabel, this); primelessLayout->addWidget(instructionsPanel); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [this]() { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [this]() { primelessLayout->setCurrentIndex(0); if (forceOpenDescriptions) { @@ -208,10 +208,10 @@ FrogPilotNavigationPanel::FrogPilotNavigationPanel(FrogPilotSettingsWindow *pare updateSpeedLimitsToggle->showDescription(); } }); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotNavigationPanel::updateState); + QObject::connect(uiState(), &UIState::uiUpdate, this, &StarPilotNavigationPanel::updateState); } -void FrogPilotNavigationPanel::showEvent(QShowEvent *event) { +void StarPilotNavigationPanel::showEvent(QShowEvent *event) { if (forceOpenDescriptions) { publicMapboxKeyControl->showDescription(); secretMapboxKeyControl->showDescription(); @@ -221,8 +221,8 @@ void FrogPilotNavigationPanel::showEvent(QShowEvent *event) { UIState &s = *uiState(); - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; QString ipAddress = fs.wifi->getIp4Address(); ipLabel->setText(ipAddress.isEmpty() ? tr("Offline...") : QString("%1:8082").arg(ipAddress)); @@ -231,7 +231,7 @@ void FrogPilotNavigationPanel::showEvent(QShowEvent *event) { updatingLimits = !params_memory.get("UpdateSpeedLimitsStatus").empty() && QString::fromStdString(params_memory.get("UpdateSpeedLimitsStatus")) != "Completed!"; - bool parked = !s.scene.started || frogpilot_scene.parked || parent->isFrogsGoMoo; + bool parked = !s.scene.started || starpilot_scene.parked || parent->isFrogsGoMoo; updateSpeedLimitsToggle->setVisibleButton(0, updatingLimits); updateSpeedLimitsToggle->setVisibleButton(1, !updatingLimits); @@ -239,17 +239,17 @@ void FrogPilotNavigationPanel::showEvent(QShowEvent *event) { if (updatingLimits) { updateSpeedLimitsToggle->setValue(QString::fromStdString(params_memory.get("UpdateSpeedLimitsStatus"))); } else { - updateSpeedLimitsToggle->setEnabledButton(1, frogpilot_scene.online && util::system_time_valid() && parked); - updateSpeedLimitsToggle->setValue(frogpilot_scene.online ? (parked ? "" : "Not parked") : tr("Offline...")); - updateSpeedLimitsToggle->setVisible(parent->tuningLevel >= parent->frogpilotToggleLevels["SpeedLimitFiller"].toDouble()); + updateSpeedLimitsToggle->setEnabledButton(1, starpilot_scene.online && util::system_time_valid() && parked); + updateSpeedLimitsToggle->setValue(starpilot_scene.online ? (parked ? "" : "Not parked") : tr("Offline...")); + updateSpeedLimitsToggle->setVisible(parent->tuningLevel >= parent->starpilotToggleLevels["SpeedLimitFiller"].toDouble()); } } -void FrogPilotNavigationPanel::hideEvent(QHideEvent *event) { +void StarPilotNavigationPanel::hideEvent(QHideEvent *event) { primelessLayout->setCurrentIndex(0); } -void FrogPilotNavigationPanel::mousePressEvent(QMouseEvent *event) { +void StarPilotNavigationPanel::mousePressEvent(QMouseEvent *event) { if (primelessLayout->currentIndex() == 1) { closeSubPanel(); @@ -264,30 +264,30 @@ void FrogPilotNavigationPanel::mousePressEvent(QMouseEvent *event) { } } -void FrogPilotNavigationPanel::updateButtons() { - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; +void StarPilotNavigationPanel::updateButtons() { + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; mapboxPublicKeySet = QString::fromStdString(params.get("MapboxPublicKey")).startsWith("pk"); mapboxSecretKeySet = QString::fromStdString(params.get("MapboxSecretKey")).startsWith("sk"); publicMapboxKeyControl->setText(0, mapboxPublicKeySet ? tr("REMOVE") : tr("ADD")); - publicMapboxKeyControl->setVisibleButton(1, mapboxPublicKeySet && frogpilot_scene.online); + publicMapboxKeyControl->setVisibleButton(1, mapboxPublicKeySet && starpilot_scene.online); secretMapboxKeyControl->setText(0, mapboxSecretKeySet ? tr("REMOVE") : tr("ADD")); - secretMapboxKeyControl->setVisibleButton(1, mapboxSecretKeySet && frogpilot_scene.online); + secretMapboxKeyControl->setVisibleButton(1, mapboxSecretKeySet && starpilot_scene.online); } -void FrogPilotNavigationPanel::updateState(const UIState &s, const FrogPilotUIState &fs) { +void StarPilotNavigationPanel::updateState(const UIState &s, const StarPilotUIState &fs) { if (!isVisible() || s.sm->frame % (UI_FREQ / 2) != 0) { return; } - const FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; + const StarPilotUIScene &starpilot_scene = fs.starpilot_scene; updateButtons(); updateStep(); - bool parked = !s.scene.started || frogpilot_scene.parked || parent->isFrogsGoMoo; + bool parked = !s.scene.started || starpilot_scene.parked || parent->isFrogsGoMoo; if (updatingLimits) { if (QString::fromStdString(params_memory.get("UpdateSpeedLimitsStatus")) == "Completed!") { @@ -307,19 +307,19 @@ void FrogPilotNavigationPanel::updateState(const UIState &s, const FrogPilotUISt updateSpeedLimitsToggle->setValue(QString::fromStdString(params_memory.get("UpdateSpeedLimitsStatus"))); } } else { - updateSpeedLimitsToggle->setEnabledButton(1, frogpilot_scene.online && util::system_time_valid() && parked); - updateSpeedLimitsToggle->setValue(frogpilot_scene.online ? (parked ? "" : "Not parked") : tr("Offline...")); + updateSpeedLimitsToggle->setEnabledButton(1, starpilot_scene.online && util::system_time_valid() && parked); + updateSpeedLimitsToggle->setValue(starpilot_scene.online ? (parked ? "" : "Not parked") : tr("Offline...")); } parent->keepScreenOn = primelessLayout->currentIndex() == 1 || updatingLimits; } -void FrogPilotNavigationPanel::updateStep() { +void StarPilotNavigationPanel::updateStep() { QString currentStep; if (mapboxPublicKeySet) { - currentStep = "../../frogpilot/navigation/navigation_training/public_key_set.png"; + currentStep = "../../starpilot/navigation/navigation_training/public_key_set.png"; } else { - currentStep = "../../frogpilot/navigation/navigation_training/no_keys_set.png"; + currentStep = "../../starpilot/navigation/navigation_training/no_keys_set.png"; } QPixmap pixmap; diff --git a/frogpilot/ui/qt/offroad/navigation_settings.h b/starpilot/ui/qt/offroad/navigation_settings.h similarity index 59% rename from frogpilot/ui/qt/offroad/navigation_settings.h rename to starpilot/ui/qt/offroad/navigation_settings.h index 27638cb1..f08160aa 100644 --- a/frogpilot/ui/qt/offroad/navigation_settings.h +++ b/starpilot/ui/qt/offroad/navigation_settings.h @@ -1,12 +1,12 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotNavigationPanel : public FrogPilotListWidget { +class StarPilotNavigationPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotNavigationPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotNavigationPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); signals: void closeSubPanel(); @@ -19,7 +19,7 @@ protected: private: void mousePressEvent(QMouseEvent *event); void updateButtons(); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); void updateStep(); bool forceOpenDescriptions; @@ -27,13 +27,13 @@ private: bool mapboxSecretKeySet; bool updatingLimits; - FrogPilotButtonsControl *publicMapboxKeyControl; - FrogPilotButtonsControl *secretMapboxKeyControl; + StarPilotButtonsControl *publicMapboxKeyControl; + StarPilotButtonsControl *secretMapboxKeyControl; ButtonControl *setupButton; - FrogPilotButtonControl *updateSpeedLimitsToggle; + StarPilotButtonControl *updateSpeedLimitsToggle; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; LabelControl *ipLabel; diff --git a/frogpilot/ui/qt/offroad/sounds_settings.cc b/starpilot/ui/qt/offroad/sounds_settings.cc similarity index 81% rename from frogpilot/ui/qt/offroad/sounds_settings.cc rename to starpilot/ui/qt/offroad/sounds_settings.cc index 7b5e8b63..da8bfe60 100644 --- a/frogpilot/ui/qt/offroad/sounds_settings.cc +++ b/starpilot/ui/qt/offroad/sounds_settings.cc @@ -1,19 +1,19 @@ -#include "frogpilot/ui/qt/offroad/sounds_settings.h" +#include "starpilot/ui/qt/offroad/sounds_settings.h" -FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotSoundsPanel::StarPilotSoundsPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; QStackedLayout *soundsLayout = new QStackedLayout(); addItem(soundsLayout); - FrogPilotListWidget *soundsList = new FrogPilotListWidget(this); + StarPilotListWidget *soundsList = new StarPilotListWidget(this); ScrollView *soundsPanel = new ScrollView(soundsList, this); soundsLayout->addWidget(soundsPanel); - FrogPilotListWidget *alertVolumeControlList = new FrogPilotListWidget(this); - FrogPilotListWidget *customAlertsList = new FrogPilotListWidget(this); + StarPilotListWidget *alertVolumeControlList = new StarPilotListWidget(this); + StarPilotListWidget *customAlertsList = new StarPilotListWidget(this); ScrollView *alertVolumeControlPanel = new ScrollView(alertVolumeControlList, this); ScrollView *customAlertsPanel = new ScrollView(customAlertsList, this); @@ -22,7 +22,7 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent, bool soundsLayout->addWidget(customAlertsPanel); const std::vector> soundsToggles { - {"AlertVolumeControl", tr("Alert Volume Controller"), tr("Set how loud each type of openpilot alert is to keep routine prompts from becoming distracting."), "../../frogpilot/assets/toggle_icons/icon_mute.png"}, + {"AlertVolumeControl", tr("Alert Volume Controller"), tr("Set how loud each type of openpilot alert is to keep routine prompts from becoming distracting."), "../../starpilot/assets/toggle_icons/icon_mute.png"}, {"DisengageVolume", tr("Disengage Volume"), tr("Set the volume for alerts when openpilot disengages.

Examples include: \"Cruise Fault: Restart the Car\", \"Parking Brake Engaged\", \"Pedal Pressed\"."), ""}, {"EngageVolume", tr("Engage Volume"), tr("Set the volume for the chime when openpilot engages, such as after pressing the \"RESUME\" or \"SET\" steering wheel buttons."), ""}, {"PromptVolume", tr("Prompt Volume"), tr("Set the volume for prompts that need attention.

Examples include: \"Car Detected in Blindspot\", \"Steering Temporarily Unavailable\", \"Turn Exceeds Steering Limit\"."), ""}, @@ -31,7 +31,7 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent, bool {"WarningSoftVolume", tr("Warning Soft Volume"), tr("Set the volume for softer warnings about potential risks.

Examples include: \"BRAKE! Risk of Collision\", \"Steering Temporarily Unavailable\"."), ""}, {"WarningImmediateVolume", tr("Warning Immediate Volume"), tr("Set the volume for the loudest warnings that require urgent attention.

Examples include: \"DISENGAGE IMMEDIATELY — Driver Distracted\", \"DISENGAGE IMMEDIATELY — Driver Unresponsive\"."), ""}, - {"CustomAlerts", tr("FrogPilot Alerts"), tr("Optional FrogPilot alerts that highlight driving events in a more noticeable way."), "../../frogpilot/assets/toggle_icons/icon_green_light.png"}, + {"CustomAlerts", tr("StarPilot Alerts"), tr("Optional StarPilot alerts that highlight driving events in a more noticeable way."), "../../starpilot/assets/toggle_icons/icon_green_light.png"}, {"GoatScream", tr("Goat Scream"), tr("Play the infamous \"Goat Scream\" when the steering controller reaches its limit. Based on the \"Turn Exceeds Steering Limit\" event."), ""}, {"GreenLightAlert", tr("Green Light Alert"), tr("Play an alert when the model predicts a red light has turned green.

Disclaimer: openpilot does not explicitly detect traffic lights. This alert is based on end-to-end model predictions from camera input and may trigger even when the light has not changed."), ""}, {"LeadDepartingAlert", tr("Lead Departing Alert"), tr("Play an alert when the lead vehicle departs from a stop."), ""}, @@ -43,8 +43,8 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent, bool AbstractControl *soundsToggle; if (param == "AlertVolumeControl") { - FrogPilotManageControl *alertVolumeControlToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(alertVolumeControlToggle, &FrogPilotManageControl::manageButtonClicked, [soundsLayout, alertVolumeControlPanel]() { + StarPilotManageControl *alertVolumeControlToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(alertVolumeControlToggle, &StarPilotManageControl::manageButtonClicked, [soundsLayout, alertVolumeControlPanel]() { soundsLayout->setCurrentWidget(alertVolumeControlPanel); }); soundsToggle = alertVolumeControlToggle; @@ -55,14 +55,14 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent, bool } std::vector alertButton{tr("Test")}; if (param == "WarningImmediateVolume" || param == "WarningSoftVolume") { - soundsToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 25, 101, QString(), volumeLabels, 1, true, {}, alertButton, false, false); + soundsToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, 25, 101, QString(), volumeLabels, 1, true, {}, alertButton, false, false); } else { - soundsToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 0, 101, QString(), volumeLabels, 1, true, {}, alertButton, false, false); + soundsToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, 0, 101, QString(), volumeLabels, 1, true, {}, alertButton, false, false); } } else if (param == "CustomAlerts") { - FrogPilotManageControl *customAlertsToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(customAlertsToggle, &FrogPilotManageControl::manageButtonClicked, [soundsLayout, customAlertsPanel]() { + StarPilotManageControl *customAlertsToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(customAlertsToggle, &StarPilotManageControl::manageButtonClicked, [soundsLayout, customAlertsPanel]() { soundsLayout->setCurrentWidget(customAlertsPanel); }); soundsToggle = customAlertsToggle; @@ -83,8 +83,8 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent, bool parentKeys.insert(param); } - if (FrogPilotManageControl *frogPilotManageToggle = qobject_cast(soundsToggle)) { - QObject::connect(frogPilotManageToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + if (StarPilotManageControl *frogPilotManageToggle = qobject_cast(soundsToggle)) { + QObject::connect(frogPilotManageToggle, &StarPilotManageControl::manageButtonClicked, [this]() { emit openSubPanel(); openDescriptions(forceOpenDescriptions, toggles); }); @@ -99,18 +99,18 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent, bool } for (const QString &key : alertVolumeControlKeys) { - FrogPilotParamValueButtonControl *toggle = static_cast(toggles[key]); - QObject::connect(toggle, &FrogPilotParamValueButtonControl::buttonClicked, [key, toggle, this]() { + StarPilotParamValueButtonControl *toggle = static_cast(toggles[key]); + QObject::connect(toggle, &StarPilotParamValueButtonControl::buttonClicked, [key, toggle, this]() { toggle->updateParam(); testSound(key); }); } - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [soundsLayout, soundsPanel, this] { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [soundsLayout, soundsPanel, this] { openDescriptions(forceOpenDescriptions, toggles); soundsLayout->setCurrentWidget(soundsPanel); }); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotSoundsPanel::updateState); + QObject::connect(uiState(), &UIState::uiUpdate, this, &StarPilotSoundsPanel::updateState); for (auto &[key, toggle] : toggles) { if (alertVolumeControlKeys.contains(key)) { @@ -123,11 +123,11 @@ FrogPilotSoundsPanel::FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent, bool updateToggles(); } -void FrogPilotSoundsPanel::showEvent(QShowEvent *event) { +void StarPilotSoundsPanel::showEvent(QShowEvent *event) { updateToggles(); } -void FrogPilotSoundsPanel::initializeSoundPlayer() { +void StarPilotSoundsPanel::initializeSoundPlayer() { QString program = R"( import numpy as np import sounddevice as sd @@ -154,7 +154,7 @@ while True: soundPlayerProcess->start("python3", QStringList{"-u", "-c", program}); } -void FrogPilotSoundsPanel::updateState(const UIState &s) { +void StarPilotSoundsPanel::updateState(const UIState &s) { if (!isVisible()) { return; } @@ -162,7 +162,7 @@ void FrogPilotSoundsPanel::updateState(const UIState &s) { started = s.scene.started; } -void FrogPilotSoundsPanel::updateToggles() { +void StarPilotSoundsPanel::updateToggles() { for (auto &[key, toggle] : toggles) { if (parentKeys.contains(key)) { toggle->setVisible(false); @@ -174,7 +174,7 @@ void FrogPilotSoundsPanel::updateToggles() { continue; } - bool setVisible = parent->tuningLevel >= parent->frogpilotToggleLevels[key].toDouble(); + bool setVisible = parent->tuningLevel >= parent->starpilotToggleLevels[key].toDouble(); if (key == "LoudBlindspotAlert") { setVisible &= parent->hasBSM; @@ -200,11 +200,11 @@ void FrogPilotSoundsPanel::updateToggles() { update(); } -void FrogPilotSoundsPanel::testSound(const QString &key) { +void StarPilotSoundsPanel::testSound(const QString &key) { QString baseName = QString(key).remove("Volume"); if (started) { - updateFrogPilotToggles(); + updateStarPilotToggles(); util::sleep_for(UI_FREQ); @@ -213,7 +213,7 @@ void FrogPilotSoundsPanel::testSound(const QString &key) { } else { QString snakeCaseAlert = QString(baseName).replace(QRegularExpression("([A-Z])"), "_\\1").toLower().mid(1); QString stockPath = "../../selfdrive/assets/sounds/" + snakeCaseAlert + ".wav"; - QString themePath = "../../frogpilot/assets/active_theme/sounds/" + snakeCaseAlert + ".wav"; + QString themePath = "../../starpilot/assets/active_theme/sounds/" + snakeCaseAlert + ".wav"; float volume = params.getFloat(key.toStdString()) / 100.0f; diff --git a/frogpilot/ui/qt/offroad/sounds_settings.h b/starpilot/ui/qt/offroad/sounds_settings.h similarity index 79% rename from frogpilot/ui/qt/offroad/sounds_settings.h rename to starpilot/ui/qt/offroad/sounds_settings.h index ada6a3ff..b95a2f5a 100644 --- a/frogpilot/ui/qt/offroad/sounds_settings.h +++ b/starpilot/ui/qt/offroad/sounds_settings.h @@ -1,12 +1,12 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotSoundsPanel : public FrogPilotListWidget { +class StarPilotSoundsPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotSoundsPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotSoundsPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); signals: void openSubPanel(); @@ -30,7 +30,7 @@ private: QSet parentKeys; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; Params params; Params params_memory{"", true}; diff --git a/frogpilot/ui/qt/offroad/frogpilot_settings.cc b/starpilot/ui/qt/offroad/starpilot_settings.cc similarity index 66% rename from frogpilot/ui/qt/offroad/frogpilot_settings.cc rename to starpilot/ui/qt/offroad/starpilot_settings.cc index f73b7ac9..ddc0e3db 100644 --- a/frogpilot/ui/qt/offroad/frogpilot_settings.cc +++ b/starpilot/ui/qt/offroad/starpilot_settings.cc @@ -1,17 +1,17 @@ -#include "frogpilot/ui/qt/offroad/data_settings.h" -#include "frogpilot/ui/qt/offroad/device_settings.h" -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" -#include "frogpilot/ui/qt/offroad/lateral_settings.h" -#include "frogpilot/ui/qt/offroad/longitudinal_settings.h" -#include "frogpilot/ui/qt/offroad/maps_settings.h" -#include "frogpilot/ui/qt/offroad/model_settings.h" -#include "frogpilot/ui/qt/offroad/navigation_settings.h" -#include "frogpilot/ui/qt/offroad/sounds_settings.h" -#include "frogpilot/ui/qt/offroad/theme_settings.h" -#include "frogpilot/ui/qt/offroad/utilities.h" -#include "frogpilot/ui/qt/offroad/vehicle_settings.h" -#include "frogpilot/ui/qt/offroad/visual_settings.h" -#include "frogpilot/ui/qt/offroad/wheel_settings.h" +#include "starpilot/ui/qt/offroad/data_settings.h" +#include "starpilot/ui/qt/offroad/device_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" +#include "starpilot/ui/qt/offroad/lateral_settings.h" +#include "starpilot/ui/qt/offroad/longitudinal_settings.h" +#include "starpilot/ui/qt/offroad/maps_settings.h" +#include "starpilot/ui/qt/offroad/model_settings.h" +#include "starpilot/ui/qt/offroad/navigation_settings.h" +#include "starpilot/ui/qt/offroad/sounds_settings.h" +#include "starpilot/ui/qt/offroad/theme_settings.h" +#include "starpilot/ui/qt/offroad/utilities.h" +#include "starpilot/ui/qt/offroad/vehicle_settings.h" +#include "starpilot/ui/qt/offroad/visual_settings.h" +#include "starpilot/ui/qt/offroad/wheel_settings.h" #include "system/hardware/hw.h" bool nnffLogFileExists(const QString &carFingerprint) { @@ -19,7 +19,7 @@ bool nnffLogFileExists(const QString &carFingerprint) { static QMap substitutes; if (models.isEmpty()) { - QFileInfoList fileInfoList = QDir(QStringLiteral("../../frogpilot/assets/nnff_models")).entryInfoList(QDir::Files | QDir::NoDotAndDotDot); + QFileInfoList fileInfoList = QDir(QStringLiteral("../../starpilot/assets/nnff_models")).entryInfoList(QDir::Files | QDir::NoDotAndDotDot); for (const QFileInfo &fileInfo : fileInfoList) { models.append(fileInfo.completeBaseName()); } @@ -63,37 +63,37 @@ bool nnffLogFileExists(const QString &carFingerprint) { return false; } -void FrogPilotSettingsWindow::createPanelButtons(FrogPilotListWidget *list) { - FrogPilotDataPanel *frogpilotDataPanel = new FrogPilotDataPanel(this, !shownDescriptions.value("FrogPilotDataPanel").toBool(false)); - FrogPilotDevicePanel *frogpilotDevicePanel = new FrogPilotDevicePanel(this, !shownDescriptions.value("FrogPilotDevicePanel").toBool(false)); - FrogPilotLateralPanel *frogpilotLateralPanel = new FrogPilotLateralPanel(this, !shownDescriptions.value("FrogPilotLateralPanel").toBool(false)); - FrogPilotLongitudinalPanel *frogpilotLongitudinalPanel = new FrogPilotLongitudinalPanel(this, !shownDescriptions.value("FrogPilotLongitudinalPanel").toBool(false)); - FrogPilotMapsPanel *frogpilotMapsPanel = new FrogPilotMapsPanel(this, !shownDescriptions.value("FrogPilotMapsPanel").toBool(false)); - FrogPilotModelPanel *frogpilotModelPanel = new FrogPilotModelPanel(this); - FrogPilotNavigationPanel *frogpilotNavigationPanel = new FrogPilotNavigationPanel(this, !shownDescriptions.value("FrogPilotNavigationPanel").toBool(false)); - FrogPilotSoundsPanel *frogpilotSoundsPanel = new FrogPilotSoundsPanel(this, !shownDescriptions.value("FrogPilotSoundsPanel").toBool(false)); - FrogPilotThemesPanel *frogpilotThemesPanel = new FrogPilotThemesPanel(this, !shownDescriptions.value("FrogPilotThemesPanel").toBool(false)); - FrogPilotUtilitiesPanel *frogpilotUtilitiesPanel = new FrogPilotUtilitiesPanel(this, !shownDescriptions.value("FrogPilotUtilitiesPanel").toBool(false)); - FrogPilotVehiclesPanel *frogpilotVehiclesPanel = new FrogPilotVehiclesPanel(this, !shownDescriptions.value("FrogPilotVehiclesPanel").toBool(false)); - FrogPilotVisualsPanel *frogpilotVisualsPanel = new FrogPilotVisualsPanel(this, !shownDescriptions.value("FrogPilotVisualsPanel").toBool(false)); - FrogPilotWheelPanel *frogpilotWheelPanel = new FrogPilotWheelPanel(this, !shownDescriptions.value("FrogPilotWheelPanel").toBool(false)); +void StarPilotSettingsWindow::createPanelButtons(StarPilotListWidget *list) { + StarPilotDataPanel *starpilotDataPanel = new StarPilotDataPanel(this, !shownDescriptions.value("StarPilotDataPanel").toBool(false)); + StarPilotDevicePanel *starpilotDevicePanel = new StarPilotDevicePanel(this, !shownDescriptions.value("StarPilotDevicePanel").toBool(false)); + StarPilotLateralPanel *starpilotLateralPanel = new StarPilotLateralPanel(this, !shownDescriptions.value("StarPilotLateralPanel").toBool(false)); + StarPilotLongitudinalPanel *starpilotLongitudinalPanel = new StarPilotLongitudinalPanel(this, !shownDescriptions.value("StarPilotLongitudinalPanel").toBool(false)); + StarPilotMapsPanel *starpilotMapsPanel = new StarPilotMapsPanel(this, !shownDescriptions.value("StarPilotMapsPanel").toBool(false)); + StarPilotModelPanel *starpilotModelPanel = new StarPilotModelPanel(this); + StarPilotNavigationPanel *starpilotNavigationPanel = new StarPilotNavigationPanel(this, !shownDescriptions.value("StarPilotNavigationPanel").toBool(false)); + StarPilotSoundsPanel *starpilotSoundsPanel = new StarPilotSoundsPanel(this, !shownDescriptions.value("StarPilotSoundsPanel").toBool(false)); + StarPilotThemesPanel *starpilotThemesPanel = new StarPilotThemesPanel(this, !shownDescriptions.value("StarPilotThemesPanel").toBool(false)); + StarPilotUtilitiesPanel *starpilotUtilitiesPanel = new StarPilotUtilitiesPanel(this, !shownDescriptions.value("StarPilotUtilitiesPanel").toBool(false)); + StarPilotVehiclesPanel *starpilotVehiclesPanel = new StarPilotVehiclesPanel(this, !shownDescriptions.value("StarPilotVehiclesPanel").toBool(false)); + StarPilotVisualsPanel *starpilotVisualsPanel = new StarPilotVisualsPanel(this, !shownDescriptions.value("StarPilotVisualsPanel").toBool(false)); + StarPilotWheelPanel *starpilotWheelPanel = new StarPilotWheelPanel(this, !shownDescriptions.value("StarPilotWheelPanel").toBool(false)); std::vector>> panelButtons = { - {{tr("MANAGE"), frogpilotSoundsPanel}}, - {{tr("DRIVING MODEL"), frogpilotModelPanel}, {tr("GAS / BRAKE"), frogpilotLongitudinalPanel}, {tr("STEERING"), frogpilotLateralPanel}}, - {{tr("MAP DATA"), frogpilotMapsPanel}, {tr("NAVIGATION"), frogpilotNavigationPanel}}, - {{tr("DATA"), frogpilotDataPanel}, {tr("DEVICE CONTROLS"), frogpilotDevicePanel}, {tr("UTILITIES"), frogpilotUtilitiesPanel}}, - {{tr("APPEARANCE"), frogpilotVisualsPanel}, {tr("THEME"), frogpilotThemesPanel}}, - {{tr("VEHICLE SETTINGS"), frogpilotVehiclesPanel}, {tr("WHEEL CONTROLS"), frogpilotWheelPanel}} + {{tr("MANAGE"), starpilotSoundsPanel}}, + {{tr("DRIVING MODEL"), starpilotModelPanel}, {tr("GAS / BRAKE"), starpilotLongitudinalPanel}, {tr("STEERING"), starpilotLateralPanel}}, + {{tr("MAP DATA"), starpilotMapsPanel}, {tr("NAVIGATION"), starpilotNavigationPanel}}, + {{tr("DATA"), starpilotDataPanel}, {tr("DEVICE CONTROLS"), starpilotDevicePanel}, {tr("UTILITIES"), starpilotUtilitiesPanel}}, + {{tr("APPEARANCE"), starpilotVisualsPanel}, {tr("THEME"), starpilotThemesPanel}}, + {{tr("VEHICLE SETTINGS"), starpilotVehiclesPanel}, {tr("WHEEL CONTROLS"), starpilotWheelPanel}} }; std::vector> panelInfo = { - {tr("Alerts and Sounds"), tr("Adjust alert volumes and enable custom notifications."), "../../frogpilot/assets/toggle_icons/icon_sound.png"}, - {tr("Driving Controls"), tr("Fine-tune custom FrogPilot acceleration, braking, and steering controls."), "../../frogpilot/assets/toggle_icons/icon_steering.png"}, - {tr("Navigation"), tr("Download map data for the \"Speed Limit Controller\"."), "../../frogpilot/assets/toggle_icons/icon_navigate.png"}, - {tr("System Settings"), tr("Manage backups, device settings, screen options, storage, and tools to keep FrogPilot running smoothly."), "../../frogpilot/assets/toggle_icons/icon_system.png"}, - {tr("Theme and Appearance"), tr("Customize the look of the driving screen and interface, including themes!"), "../../frogpilot/assets/toggle_icons/icon_display.png"}, - {tr("Vehicle Settings"), tr("Configure car-specific options and steering wheel button mappings."), "../../frogpilot/assets/toggle_icons/icon_vehicle.png"} + {tr("Alerts and Sounds"), tr("Adjust alert volumes and enable custom notifications."), "../../starpilot/assets/toggle_icons/icon_sound.png"}, + {tr("Driving Controls"), tr("Fine-tune custom StarPilot acceleration, braking, and steering controls."), "../../starpilot/assets/toggle_icons/icon_steering.png"}, + {tr("Navigation"), tr("Download map data for the \"Speed Limit Controller\"."), "../../starpilot/assets/toggle_icons/icon_navigate.png"}, + {tr("System Settings"), tr("Manage backups, device settings, screen options, storage, and tools to keep StarPilot running smoothly."), "../../starpilot/assets/toggle_icons/icon_system.png"}, + {tr("Theme and Appearance"), tr("Customize the look of the driving screen and interface, including themes!"), "../../starpilot/assets/toggle_icons/icon_display.png"}, + {tr("Vehicle Settings"), tr("Configure car-specific options and steering wheel button mappings."), "../../starpilot/assets/toggle_icons/icon_vehicle.png"} }; for (size_t i = 0; i < panelInfo.size(); ++i) { @@ -117,7 +117,7 @@ void FrogPilotSettingsWindow::createPanelButtons(FrogPilotListWidget *list) { widgets.push_back(panelFrame); } - FrogPilotButtonsControl *panelButton = new FrogPilotButtonsControl(title, description, icon, labels); + StarPilotButtonsControl *panelButton = new StarPilotButtonsControl(title, description, icon, labels); if (title == tr("Alerts and Sounds")) soundPanelButtons = panelButton; if (title == tr("Driving Controls")) drivingPanelButtons = panelButton; if (title == tr("Navigation")) navigationPanelButtons = panelButton; @@ -129,7 +129,7 @@ void FrogPilotSettingsWindow::createPanelButtons(FrogPilotListWidget *list) { panelButton->showDescription(); } - QObject::connect(panelButton, &FrogPilotButtonsControl::buttonClicked, [widgets, this](int id) { + QObject::connect(panelButton, &StarPilotButtonsControl::buttonClicked, [widgets, this](int id) { mainLayout->setCurrentWidget(widgets[id]); panelOpen = true; @@ -151,24 +151,24 @@ void FrogPilotSettingsWindow::createPanelButtons(FrogPilotListWidget *list) { list->addItem(panelButton); } - QObject::connect(frogpilotDataPanel, &FrogPilotDataPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotDevicePanel, &FrogPilotDevicePanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotLateralPanel, &FrogPilotLateralPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotLongitudinalPanel, &FrogPilotLongitudinalPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotLongitudinalPanel, &FrogPilotLongitudinalPanel::openSubSubPanel, this, &FrogPilotSettingsWindow::openSubSubPanel); - QObject::connect(frogpilotLongitudinalPanel, &FrogPilotLongitudinalPanel::openSubSubSubPanel, this, &FrogPilotSettingsWindow::openSubSubSubPanel); - QObject::connect(frogpilotMapsPanel, &FrogPilotMapsPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotModelPanel, &FrogPilotModelPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotNavigationPanel, &FrogPilotNavigationPanel::closeSubPanel, this, &FrogPilotSettingsWindow::closeSubPanel); - QObject::connect(frogpilotNavigationPanel, &FrogPilotNavigationPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotSoundsPanel, &FrogPilotSoundsPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotThemesPanel, &FrogPilotThemesPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotVehiclesPanel, &FrogPilotVehiclesPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotVisualsPanel, &FrogPilotVisualsPanel::openSubPanel, this, &FrogPilotSettingsWindow::openSubPanel); - QObject::connect(frogpilotVisualsPanel, &FrogPilotVisualsPanel::openSubSubPanel, this, &FrogPilotSettingsWindow::openSubSubPanel); + QObject::connect(starpilotDataPanel, &StarPilotDataPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotDevicePanel, &StarPilotDevicePanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotLateralPanel, &StarPilotLateralPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotLongitudinalPanel, &StarPilotLongitudinalPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotLongitudinalPanel, &StarPilotLongitudinalPanel::openSubSubPanel, this, &StarPilotSettingsWindow::openSubSubPanel); + QObject::connect(starpilotLongitudinalPanel, &StarPilotLongitudinalPanel::openSubSubSubPanel, this, &StarPilotSettingsWindow::openSubSubSubPanel); + QObject::connect(starpilotMapsPanel, &StarPilotMapsPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotModelPanel, &StarPilotModelPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotNavigationPanel, &StarPilotNavigationPanel::closeSubPanel, this, &StarPilotSettingsWindow::closeSubPanel); + QObject::connect(starpilotNavigationPanel, &StarPilotNavigationPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotSoundsPanel, &StarPilotSoundsPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotThemesPanel, &StarPilotThemesPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotVehiclesPanel, &StarPilotVehiclesPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotVisualsPanel, &StarPilotVisualsPanel::openSubPanel, this, &StarPilotSettingsWindow::openSubPanel); + QObject::connect(starpilotVisualsPanel, &StarPilotVisualsPanel::openSubSubPanel, this, &StarPilotSettingsWindow::openSubSubPanel); } -FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFrame(parent) { +StarPilotSettingsWindow::StarPilotSettingsWindow(SettingsWindow *parent) : QFrame(parent) { shownDescriptions = QJsonDocument::fromJson(QString::fromStdString(params.get("ShownToggleDescriptions")).toUtf8()).object(); QString className = this->metaObject()->className(); @@ -178,27 +178,27 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram mainLayout = new QStackedLayout(this); - QWidget *frogpilotWidget = new QWidget(this); - QVBoxLayout *frogpilotLayout = new QVBoxLayout(frogpilotWidget); - frogpilotLayout->setContentsMargins(50, 25, 50, 25); - frogpilotWidget->setLayout(frogpilotLayout); + QWidget *starpilotWidget = new QWidget(this); + QVBoxLayout *starpilotLayout = new QVBoxLayout(starpilotWidget); + starpilotLayout->setContentsMargins(50, 25, 50, 25); + starpilotWidget->setLayout(starpilotLayout); - frogpilotPanel = new ScrollView(frogpilotWidget, this); - mainLayout->addWidget(frogpilotPanel); - frogpilotPanel->setWidget(frogpilotWidget); + starpilotPanel = new ScrollView(starpilotWidget, this); + mainLayout->addWidget(starpilotPanel); + starpilotPanel->setWidget(starpilotWidget); - FrogPilotListWidget *list = new FrogPilotListWidget(this); - frogpilotLayout->addWidget(list); + StarPilotListWidget *list = new StarPilotListWidget(this); + starpilotLayout->addWidget(list); std::vector togglePresets{tr("Minimal"), tr("Standard"), tr("Advanced"), tr("Developer")}; - togglePreset = new FrogPilotButtonsControl(tr("Tuning Level"), + togglePreset = new StarPilotButtonsControl(tr("Tuning Level"), tr("Choose your tuning level. Lower levels keep it simple; higher levels unlock more toggles for finer control.\n\n" "Minimal - Ideal for those who prefer simplicity or ease of use\n" "Standard - Recommended for most users for a balanced experience\n" "Advanced - Fine-tuning for experienced users\n" "Developer - Highly customizable settings for seasoned enthusiasts"), - "../../frogpilot/assets/toggle_icons/icon_tuning.png", togglePresets, true); - QObject::connect(togglePreset, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + "../../starpilot/assets/toggle_icons/icon_tuning.png", togglePresets, true); + QObject::connect(togglePreset, &StarPilotButtonsControl::buttonClicked, [this](int id) { tuningLevel = id; params.putIntNonBlocking("TuningLevel", tuningLevel); @@ -219,19 +219,19 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram createPanelButtons(list); - QObject::connect(parent, &SettingsWindow::closePanel, this, &FrogPilotSettingsWindow::closePanel); - QObject::connect(parent, &SettingsWindow::closeSubPanel, this, &FrogPilotSettingsWindow::closeSubPanel); - QObject::connect(parent, &SettingsWindow::closeSubSubPanel, this, &FrogPilotSettingsWindow::closeSubSubPanel); - QObject::connect(parent, &SettingsWindow::closeSubSubSubPanel, this, &FrogPilotSettingsWindow::closeSubSubSubPanel); - QObject::connect(parent, &SettingsWindow::updateMetric, this, &FrogPilotSettingsWindow::updateMetric); - QObject::connect(parent, &SettingsWindow::updateTuningLevel, this, &FrogPilotSettingsWindow::updateTuningLevel); - QObject::connect(uiState(), &UIState::offroadTransition, this, &FrogPilotSettingsWindow::updateVariables); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotSettingsWindow::updateState); + QObject::connect(parent, &SettingsWindow::closePanel, this, &StarPilotSettingsWindow::closePanel); + QObject::connect(parent, &SettingsWindow::closeSubPanel, this, &StarPilotSettingsWindow::closeSubPanel); + QObject::connect(parent, &SettingsWindow::closeSubSubPanel, this, &StarPilotSettingsWindow::closeSubSubPanel); + QObject::connect(parent, &SettingsWindow::closeSubSubSubPanel, this, &StarPilotSettingsWindow::closeSubSubSubPanel); + QObject::connect(parent, &SettingsWindow::updateMetric, this, &StarPilotSettingsWindow::updateMetric); + QObject::connect(parent, &SettingsWindow::updateTuningLevel, this, &StarPilotSettingsWindow::updateTuningLevel); + QObject::connect(uiState(), &UIState::offroadTransition, this, &StarPilotSettingsWindow::updateVariables); + QObject::connect(uiState(), &UIState::uiUpdate, this, &StarPilotSettingsWindow::updateState); std::vector keys = params.allKeys(); for (std::vector::const_iterator it = keys.begin(); it != keys.end(); ++it) { const std::string &key = *it; - frogpilotToggleLevels[QString::fromStdString(key)] = params.getTuningLevel(key); + starpilotToggleLevels[QString::fromStdString(key)] = params.getTuningLevel(key); } tuningLevel = params.getInt("TuningLevel"); @@ -240,7 +240,7 @@ FrogPilotSettingsWindow::FrogPilotSettingsWindow(SettingsWindow *parent) : QFram updateVariables(); } -void FrogPilotSettingsWindow::updateTuningLevel() { +void StarPilotSettingsWindow::updateTuningLevel() { tuningLevel = params.getInt("TuningLevel"); togglePreset->setCheckedButton(params.getInt("TuningLevel")); @@ -249,7 +249,7 @@ void FrogPilotSettingsWindow::updateTuningLevel() { emit tuningLevelChanged(tuningLevel); } -void FrogPilotSettingsWindow::showEvent(QShowEvent *event) { +void StarPilotSettingsWindow::showEvent(QShowEvent *event) { static bool alertShown = false; QString className = this->metaObject()->className(); @@ -275,11 +275,11 @@ void FrogPilotSettingsWindow::showEvent(QShowEvent *event) { } } -void FrogPilotSettingsWindow::hideEvent(QHideEvent *event) { +void StarPilotSettingsWindow::hideEvent(QHideEvent *event) { closePanel(); } -void FrogPilotSettingsWindow::closePanel() { +void StarPilotSettingsWindow::closePanel() { if (forceOpenDescriptions) { togglePreset->showDescription(); @@ -291,26 +291,26 @@ void FrogPilotSettingsWindow::closePanel() { vehiclePanelButtons->showDescription(); } - mainLayout->setCurrentWidget(frogpilotPanel); + mainLayout->setCurrentWidget(starpilotPanel); panelOpen = false; } -void FrogPilotSettingsWindow::updateState() { - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; +void StarPilotSettingsWindow::updateState() { + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; - frogpilot_scene.frogpilot_panel_active = panelOpen && keepScreenOn; + starpilot_scene.starpilot_panel_active = panelOpen && keepScreenOn; } -void FrogPilotSettingsWindow::updateVariables() { - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; +void StarPilotSettingsWindow::updateVariables() { + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; auto applyDesktopVehicleFallback = [&]() { - QString fallbackMake = frogpilot_toggles.value("car_make").toString(); - QString fallbackModel = frogpilot_toggles.value("car_model").toString(); + QString fallbackMake = starpilot_toggles.value("car_make").toString(); + QString fallbackModel = starpilot_toggles.value("car_model").toString(); if (fallbackMake.isEmpty()) { fallbackMake = "gm"; } @@ -321,9 +321,9 @@ void FrogPilotSettingsWindow::updateVariables() { carMake = fallbackMake.toStdString(); std::string fallbackFingerprint = fallbackModel.toStdString(); - hasPedal = frogpilot_toggles.value("has_pedal").toBool(true); - hasSDSU = frogpilot_toggles.value("has_sdsu").toBool(); - hasZSS = frogpilot_toggles.value("has_zss").toBool(); + hasPedal = starpilot_toggles.value("has_pedal").toBool(true); + hasSDSU = starpilot_toggles.value("has_sdsu").toBool(); + hasZSS = starpilot_toggles.value("has_zss").toBool(); isBolt = fallbackFingerprint.rfind("CHEVROLET_BOLT", 0) == 0; isGM = carMake == "gm"; isHKG = carMake == "hyundai"; @@ -355,9 +355,9 @@ void FrogPilotSettingsWindow::updateVariables() { hasPCMCruise = CP.getPcmCruise(); hasPedal = CP.getEnableGasInterceptorDEPRECATED(); hasRadar = !CP.getRadarUnavailable(); - hasSDSU = frogpilot_toggles.value("has_sdsu").toBool(); + hasSDSU = starpilot_toggles.value("has_sdsu").toBool(); hasSNG = CP.getAutoResumeSng(); - hasZSS = frogpilot_toggles.value("has_zss").toBool(); + hasZSS = starpilot_toggles.value("has_zss").toBool(); isAngleCar = CP.getSteerControlType() == cereal::CarParams::SteerControlType::ANGLE; isBolt = carFingerprint.rfind("CHEVROLET_BOLT", 0) == 0; isGM = carMake == "gm"; @@ -369,7 +369,7 @@ void FrogPilotSettingsWindow::updateVariables() { isTSK = CP.getSecOcRequired(); isVolt = carFingerprint.rfind("CHEVROLET_VOLT", 0) == 0; latAccelFactor = CP.getLateralTuning().getTorque().getLatAccelFactor(); - lkasAllowedForAOL = frogpilot_toggles.value("lkas_allowed_for_aol").toBool(); + lkasAllowedForAOL = starpilot_toggles.value("lkas_allowed_for_aol").toBool(); longitudinalActuatorDelay = CP.getLongitudinalActuatorDelay(); startAccel = CP.getStartAccel(); steerActuatorDelay = CP.getSteerActuatorDelay(); @@ -476,11 +476,11 @@ void FrogPilotSettingsWindow::updateVariables() { applyDesktopVehicleFallback(); } - std::string frogpilotCarParams = params.get("FrogPilotCarParamsPersistent"); - if (!frogpilotCarParams.empty()) { + std::string starpilotCarParams = params.get("StarPilotCarParamsPersistent"); + if (!starpilotCarParams.empty()) { AlignedBuffer aligned_buf; - capnp::FlatArrayMessageReader fpcmsg(aligned_buf.align(frogpilotCarParams.data(), frogpilotCarParams.size())); - cereal::FrogPilotCarParams::Reader FPCP = fpcmsg.getRoot(); + capnp::FlatArrayMessageReader fpcmsg(aligned_buf.align(starpilotCarParams.data(), starpilotCarParams.size())); + cereal::StarPilotCarParams::Reader FPCP = fpcmsg.getRoot(); canUsePedal = FPCP.getCanUsePedal(); canUseSDSU = FPCP.getCanUseSDSU(); @@ -497,12 +497,12 @@ void FrogPilotSettingsWindow::updateVariables() { hasAutoTune = LTP.getUseParams(); } - drivingPanelButtons->setVisibleButton(0, tuningLevel >= frogpilotToggleLevels.value("DrivingModel").toDouble()); + drivingPanelButtons->setVisibleButton(0, tuningLevel >= starpilotToggleLevels.value("DrivingModel").toDouble()); drivingPanelButtons->setVisibleButton(1, hasOpenpilotLongitudinal); - systemPanelButtons->setVisibleButton(1, tuningLevel >= frogpilotToggleLevels.value("DeviceManagement").toDouble() || tuningLevel >= frogpilotToggleLevels.value("ScreenManagement").toDouble()); + systemPanelButtons->setVisibleButton(1, tuningLevel >= starpilotToggleLevels.value("DeviceManagement").toDouble() || tuningLevel >= starpilotToggleLevels.value("ScreenManagement").toDouble()); - vehiclePanelButtons->setVisibleButton(1, tuningLevel >= frogpilotToggleLevels.value("WheelControls").toDouble()); + vehiclePanelButtons->setVisibleButton(1, tuningLevel >= starpilotToggleLevels.value("WheelControls").toDouble()); update(); } diff --git a/frogpilot/ui/qt/offroad/frogpilot_settings.h b/starpilot/ui/qt/offroad/starpilot_settings.h similarity index 74% rename from frogpilot/ui/qt/offroad/frogpilot_settings.h rename to starpilot/ui/qt/offroad/starpilot_settings.h index a8b5927f..660a2f73 100644 --- a/frogpilot/ui/qt/offroad/frogpilot_settings.h +++ b/starpilot/ui/qt/offroad/starpilot_settings.h @@ -3,16 +3,16 @@ #include "selfdrive/ui/qt/offroad/settings.h" #include "selfdrive/ui/qt/widgets/scrollview.h" -#include "frogpilot/ui/frogpilot_ui.h" -#include "frogpilot/ui/qt/widgets/frogpilot_controls.h" +#include "starpilot/ui/starpilot_ui.h" +#include "starpilot/ui/qt/widgets/starpilot_controls.h" class QNetworkAccessManager; -class FrogPilotSettingsWindow : public QFrame { +class StarPilotSettingsWindow : public QFrame { Q_OBJECT public: - explicit FrogPilotSettingsWindow(SettingsWindow *parent); + explicit StarPilotSettingsWindow(SettingsWindow *parent); void updateVariables(); @@ -60,7 +60,7 @@ public: int tuningLevel; - QJsonObject frogpilotToggleLevels; + QJsonObject starpilotToggleLevels; signals: void closeSubPanel(); @@ -75,7 +75,7 @@ signals: private: void closePanel(); - void createPanelButtons(FrogPilotListWidget *list); + void createPanelButtons(StarPilotListWidget *list); void hideEvent(QHideEvent *event) override; void showEvent(QShowEvent *event) override; void updateState(); @@ -85,13 +85,13 @@ private: std::string carMake; - FrogPilotButtonsControl *drivingPanelButtons; - FrogPilotButtonsControl *navigationPanelButtons; - FrogPilotButtonsControl *soundPanelButtons; - FrogPilotButtonsControl *systemPanelButtons; - FrogPilotButtonsControl *themePanelButtons; - FrogPilotButtonsControl *togglePreset; - FrogPilotButtonsControl *vehiclePanelButtons; + StarPilotButtonsControl *drivingPanelButtons; + StarPilotButtonsControl *navigationPanelButtons; + StarPilotButtonsControl *soundPanelButtons; + StarPilotButtonsControl *systemPanelButtons; + StarPilotButtonsControl *themePanelButtons; + StarPilotButtonsControl *togglePreset; + StarPilotButtonsControl *vehiclePanelButtons; Params params; @@ -99,5 +99,5 @@ private: QStackedLayout *mainLayout; - ScrollView *frogpilotPanel; + ScrollView *starpilotPanel; }; diff --git a/frogpilot/ui/qt/offroad/theme_settings.cc b/starpilot/ui/qt/offroad/theme_settings.cc similarity index 89% rename from frogpilot/ui/qt/offroad/theme_settings.cc rename to starpilot/ui/qt/offroad/theme_settings.cc index 2e406a38..1a9fd93a 100644 --- a/frogpilot/ui/qt/offroad/theme_settings.cc +++ b/starpilot/ui/qt/offroad/theme_settings.cc @@ -1,4 +1,4 @@ -#include "frogpilot/ui/qt/offroad/theme_settings.h" +#include "starpilot/ui/qt/offroad/theme_settings.h" bool isUserCreatedTheme(const QString &themeName) { return themeName.endsWith("-user_created"); @@ -207,26 +207,26 @@ QString storeThemeName(const QString &input, const std::string ¶mKey, Params return getThemeName(paramKey, params); } -FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotThemesPanel::StarPilotThemesPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; QStackedLayout *themesLayout = new QStackedLayout(); addItem(themesLayout); - FrogPilotListWidget *themesList = new FrogPilotListWidget(this); + StarPilotListWidget *themesList = new StarPilotListWidget(this); ScrollView *themesPanel = new ScrollView(themesList, this); themesLayout->addWidget(themesPanel); - FrogPilotListWidget *customThemesList = new FrogPilotListWidget(this); + StarPilotListWidget *customThemesList = new StarPilotListWidget(this); ScrollView *customThemesPanel = new ScrollView(customThemesList, this); themesLayout->addWidget(customThemesPanel); const std::vector> themeToggles { - {"CustomThemes", tr("Custom Themes"), tr("The overall look and feel of openpilot. Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"), "../../frogpilot/assets/toggle_icons/icon_frog.png"}, + {"CustomThemes", tr("Custom Themes"), tr("The overall look and feel of openpilot. Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"), "../../starpilot/assets/toggle_icons/icon_frog.png"}, {"BootLogo", tr("Boot Logo"), tr("The boot logo shown while the device starts."), ""}, {"ColorScheme", tr("Color Scheme"), tr("The color scheme used throughout openpilot. Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"), ""}, {"DistanceIconPack", tr("Distance Button"), tr("The distance button icons shown on the driving screen. Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"), ""}, @@ -236,25 +236,25 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool {"WheelIcon", tr("Steering Wheel"), tr("The steering-wheel icon shown at the top-right of the driving screen. Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"), ""}, {"DownloadStatusLabel", tr("Download Status"), "", ""}, - {"HolidayThemes", tr("Holiday Themes"), tr("Themes based on U.S. holidays. Minor holidays last one day; major holidays (Christmas, Easter, Halloween) run for a full week."), "../../frogpilot/assets/toggle_icons/icon_calendar.png"}, - {"RainbowPath", tr("Rainbow Path"), tr("Color the driving path like a Mario Kart–style \"Rainbow Road\"."), "../../frogpilot/assets/toggle_icons/icon_rainbow.png"}, - {"RandomEvents", tr("Random Events"), tr("Occasional on-screen effects triggered by driving conditions. These are purely a visual and don't impact how openpilot drives!"), "../../frogpilot/assets/toggle_icons/icon_random.png"}, - {"RandomThemes", tr("Random Themes"), tr("Pick a random theme between each drive from the themes you have downloaded. Great for variety without changing settings while driving."), "../../frogpilot/assets/toggle_icons/icon_random_themes.png"}, - {"StartupAlert", tr("Startup Alert"), tr("Customize the \"Startup Alert\" message shown at the start of each drive."), "../../frogpilot/assets/toggle_icons/icon_message.png"} + {"HolidayThemes", tr("Holiday Themes"), tr("Themes based on U.S. holidays. Minor holidays last one day; major holidays (Christmas, Easter, Halloween) run for a full week."), "../../starpilot/assets/toggle_icons/icon_calendar.png"}, + {"RainbowPath", tr("Rainbow Path"), tr("Color the driving path like a Mario Kart–style \"Rainbow Road\"."), "../../starpilot/assets/toggle_icons/icon_rainbow.png"}, + {"RandomEvents", tr("Random Events"), tr("Occasional on-screen effects triggered by driving conditions. These are purely a visual and don't impact how openpilot drives!"), "../../starpilot/assets/toggle_icons/icon_random.png"}, + {"RandomThemes", tr("Random Themes"), tr("Pick a random theme between each drive from the themes you have downloaded. Great for variety without changing settings while driving."), "../../starpilot/assets/toggle_icons/icon_random_themes.png"}, + {"StartupAlert", tr("Startup Alert"), tr("Customize the \"Startup Alert\" message shown at the start of each drive."), "../../starpilot/assets/toggle_icons/icon_message.png"} }; for (const auto &[param, title, desc, icon] : themeToggles) { AbstractControl *themeToggle; if (param == "CustomThemes") { - FrogPilotManageControl *personalizeOpenpilotToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(personalizeOpenpilotToggle, &FrogPilotManageControl::manageButtonClicked, [customThemesPanel, themesLayout]() { + StarPilotManageControl *personalizeOpenpilotToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(personalizeOpenpilotToggle, &StarPilotManageControl::manageButtonClicked, [customThemesPanel, themesLayout]() { themesLayout->setCurrentWidget(customThemesPanel); }); themeToggle = personalizeOpenpilotToggle; } else if (param == "BootLogo") { - manageBootLogosButton = new FrogPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); - QObject::connect(manageBootLogosButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + manageBootLogosButton = new StarPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); + QObject::connect(manageBootLogosButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { // Show all downloaded boot logos, including the currently selected one. QStringList bootLogos = getThemeList(true, QDir(bootLogosDirectory.path()), "", "BootLogo", params); @@ -304,8 +304,8 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool manageBootLogosButton->setValue(getThemeName(param.toStdString(), params)); themeToggle = manageBootLogosButton; } else if (param == "ColorScheme") { - manageColorSchemeButton = new FrogPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); - QObject::connect(manageColorSchemeButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + manageColorSchemeButton = new StarPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); + QObject::connect(manageColorSchemeButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { QStringList colorSchemes = getThemeList(randomThemes, QDir(themePacksDirectory.path()), "colors", "ColorScheme", params); if (id == 0) { @@ -356,8 +356,8 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool manageColorSchemeButton->setValue(getThemeName(param.toStdString(), params)); themeToggle = manageColorSchemeButton; } else if (param == "DistanceIconPack") { - manageDistanceIconPackButton = new FrogPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); - QObject::connect(manageDistanceIconPackButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + manageDistanceIconPackButton = new StarPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); + QObject::connect(manageDistanceIconPackButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { QStringList distanceIconPacks = getThemeList(randomThemes, QDir(themePacksDirectory.path()), "distance_icons", "DistanceIconPack", params); if (id == 0) { @@ -408,8 +408,8 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool manageDistanceIconPackButton->setValue(getThemeName(param.toStdString(), params)); themeToggle = manageDistanceIconPackButton; } else if (param == "IconPack") { - manageIconPackButton = new FrogPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); - QObject::connect(manageIconPackButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + manageIconPackButton = new StarPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); + QObject::connect(manageIconPackButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { QStringList iconPacks = getThemeList(randomThemes, QDir(themePacksDirectory.path()), "icons", "IconPack", params); if (id == 0) { @@ -460,8 +460,8 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool manageIconPackButton->setValue(getThemeName(param.toStdString(), params)); themeToggle = manageIconPackButton; } else if (param == "SignalAnimation") { - manageSignalAnimationButton = new FrogPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); - QObject::connect(manageSignalAnimationButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + manageSignalAnimationButton = new StarPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); + QObject::connect(manageSignalAnimationButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { QStringList signalAnimations = getThemeList(randomThemes, QDir(themePacksDirectory.path()), "signals", "SignalAnimation", params); if (id == 0) { @@ -512,8 +512,8 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool manageSignalAnimationButton->setValue(getThemeName(param.toStdString(), params)); themeToggle = manageSignalAnimationButton; } else if (param == "SoundPack") { - manageSoundPackButton = new FrogPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); - QObject::connect(manageSoundPackButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + manageSoundPackButton = new StarPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); + QObject::connect(manageSoundPackButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { QStringList soundPacks = getThemeList(randomThemes, QDir(themePacksDirectory.path()), "sounds", "SoundPack", params); if (id == 0) { @@ -564,8 +564,8 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool manageSoundPackButton->setValue(getThemeName(param.toStdString(), params)); themeToggle = manageSoundPackButton; } else if (param == "WheelIcon") { - manageWheelIconsButton = new FrogPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); - QObject::connect(manageWheelIconsButton, &FrogPilotButtonsControl::buttonClicked, [this](int id) { + manageWheelIconsButton = new StarPilotButtonsControl(title, desc, icon, {tr("DELETE"), tr("DOWNLOAD"), tr("SELECT")}); + QObject::connect(manageWheelIconsButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { QStringList wheelIcons = getThemeList(randomThemes, QDir(wheelsDirectory.path()), "", "WheelIcon", params); if (id == 0) { @@ -623,10 +623,10 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool } else if (param == "RandomThemes") { std::vector randomThemesToggles{"RandomThemesHolidays"}; std::vector randomThemesToggleNames{tr("Include Holiday Themes")}; - themeToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, randomThemesToggles, randomThemesToggleNames); + themeToggle = new StarPilotButtonToggleControl(param, title, desc, icon, randomThemesToggles, randomThemesToggleNames); } else if (param == "StartupAlert") { - FrogPilotButtonsControl *startupAlertButton = new FrogPilotButtonsControl(title, desc, icon, {tr("STOCK"), tr("FROGPILOT"), tr("CUSTOM"), tr("CLEAR")}, true); + StarPilotButtonsControl *startupAlertButton = new StarPilotButtonsControl(title, desc, icon, {tr("STOCK"), tr("STARPILOT"), tr("CUSTOM"), tr("CLEAR")}, true); QString currentTop = QString::fromStdString(params.get("StartupMessageTop")); QString currentBottom = QString::fromStdString(params.get("StartupMessageBottom")); @@ -634,18 +634,18 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool QString stockTop = "Be ready to take over at any time"; QString stockBottom = "Always keep hands on wheel and eyes on road"; - QString frogpilotTop = "Hop in and buckle up!"; - QString frogpilotBottom = "Human-tested, frog-approved 🐸"; + QString starpilotTop = "Hop in and buckle up!"; + QString starpilotBottom = "Human-tested, frog-approved 🐸"; if (currentTop == stockTop && currentBottom == stockBottom) { startupAlertButton->setCheckedButton(0); - } else if (currentTop == frogpilotTop && currentBottom == frogpilotBottom) { + } else if (currentTop == starpilotTop && currentBottom == starpilotBottom) { startupAlertButton->setCheckedButton(1); } else if (!currentTop.isEmpty() || !currentBottom.isEmpty()) { startupAlertButton->setCheckedButton(2); } - QObject::connect(startupAlertButton, &FrogPilotButtonsControl::buttonClicked, [=](int id) { + QObject::connect(startupAlertButton, &StarPilotButtonsControl::buttonClicked, [=](int id) { int maxLengthTop = 35; int maxLengthBottom = 45; @@ -653,8 +653,8 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool params.put("StartupMessageTop", stockTop.toStdString()); params.put("StartupMessageBottom", stockBottom.toStdString()); } else if (id == 1) { - params.put("StartupMessageTop", frogpilotTop.toStdString()); - params.put("StartupMessageBottom", frogpilotBottom.toStdString()); + params.put("StartupMessageTop", starpilotTop.toStdString()); + params.put("StartupMessageBottom", starpilotBottom.toStdString()); } else if (id == 2) { QString currentTop = QString::fromStdString(params.get("StartupMessageTop")); QString newTop = InputDialog::getText(tr("Enter the text for the top half"), this, tr("Characters: 0/%1").arg(maxLengthTop), false, 1, currentTop, maxLengthTop).trimmed(); @@ -668,7 +668,7 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool } } } else if (id == 3) { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your startup message?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely reset your startup message?"), this)) { params.remove("StartupMessageTop"); params.remove("StartupMessageBottom"); @@ -694,8 +694,8 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool } } - if (FrogPilotManageControl *frogPilotManageToggle = qobject_cast(themeToggle)) { - QObject::connect(frogPilotManageToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + if (StarPilotManageControl *frogPilotManageToggle = qobject_cast(themeToggle)) { + QObject::connect(frogPilotManageToggle, &StarPilotManageControl::manageButtonClicked, [this]() { emit openSubPanel(); openDescriptions(forceOpenDescriptions, toggles); }); @@ -711,7 +711,7 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool openDescriptions(forceOpenDescriptions, toggles); - QObject::connect(static_cast(toggles["CustomThemes"]), &ToggleControl::toggleFlipped, this, &FrogPilotThemesPanel::updateToggles); + QObject::connect(static_cast(toggles["CustomThemes"]), &ToggleControl::toggleFlipped, this, &StarPilotThemesPanel::updateToggles); QObject::connect(static_cast(toggles["RandomThemes"]), &ToggleControl::toggleFlipped, [this](bool state) { if (state) { ConfirmationDialog::alert(tr("\"Random Themes\" only works with downloaded themes, so make sure you download the themes you want it to use!"), this); @@ -756,14 +756,14 @@ FrogPilotThemesPanel::FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool randomThemes = state; }); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [themesLayout, themesPanel, this] { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [themesLayout, themesPanel, this] { openDescriptions(forceOpenDescriptions, toggles); themesLayout->setCurrentWidget(themesPanel); }); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotThemesPanel::updateState); + QObject::connect(uiState(), &UIState::uiUpdate, this, &StarPilotThemesPanel::updateState); } -void FrogPilotThemesPanel::showEvent(QShowEvent *event) { +void StarPilotThemesPanel::showEvent(QShowEvent *event) { bootLogosDownloaded = params.get("DownloadableBootLogos").empty(); colorsDownloaded = params.get("DownloadableColors").empty(); distanceIconsDownloaded = params.get("DownloadableDistanceIcons").empty(); @@ -797,12 +797,12 @@ void FrogPilotThemesPanel::showEvent(QShowEvent *event) { updateToggles(); } -void FrogPilotThemesPanel::updateState(const UIState &s, const FrogPilotUIState &fs) { +void StarPilotThemesPanel::updateState(const UIState &s, const StarPilotUIState &fs) { if (!isVisible() || finalizingDownload) { return; } - const FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; + const StarPilotUIScene &starpilot_scene = fs.starpilot_scene; if (themeDownloading) { QString progress = QString::fromStdString(params_memory.get("ThemeDownloadProgress")); @@ -858,47 +858,47 @@ void FrogPilotThemesPanel::updateState(const UIState &s, const FrogPilotUIState } } - bool parked = !s.scene.started || frogpilot_scene.parked || parent->isFrogsGoMoo; + bool parked = !s.scene.started || starpilot_scene.parked || parent->isFrogsGoMoo; manageBootLogosButton->setText(1, bootLogoDownloading ? tr("CANCEL") : tr("DOWNLOAD")); manageBootLogosButton->setEnabledButtons(0, !themeDownloading); - manageBootLogosButton->setEnabledButtons(1, frogpilot_scene.online && (!themeDownloading || bootLogoDownloading) && !cancellingDownload && !finalizingDownload && !bootLogosDownloaded && parked); + manageBootLogosButton->setEnabledButtons(1, starpilot_scene.online && (!themeDownloading || bootLogoDownloading) && !cancellingDownload && !finalizingDownload && !bootLogosDownloaded && parked); manageBootLogosButton->setEnabledButtons(2, !themeDownloading); manageColorSchemeButton->setText(1, colorDownloading ? tr("CANCEL") : tr("DOWNLOAD")); manageColorSchemeButton->setEnabledButtons(0, !themeDownloading); - manageColorSchemeButton->setEnabledButtons(1, frogpilot_scene.online && (!themeDownloading || colorDownloading) && !cancellingDownload && !finalizingDownload && !colorsDownloaded && parked); + manageColorSchemeButton->setEnabledButtons(1, starpilot_scene.online && (!themeDownloading || colorDownloading) && !cancellingDownload && !finalizingDownload && !colorsDownloaded && parked); manageColorSchemeButton->setEnabledButtons(2, !themeDownloading); manageDistanceIconPackButton->setText(1, distanceIconDownloading ? tr("CANCEL") : tr("DOWNLOAD")); manageDistanceIconPackButton->setEnabledButtons(0, !themeDownloading); - manageDistanceIconPackButton->setEnabledButtons(1, frogpilot_scene.online && (!themeDownloading || distanceIconDownloading) && !cancellingDownload && !finalizingDownload && !distanceIconsDownloaded && parked); + manageDistanceIconPackButton->setEnabledButtons(1, starpilot_scene.online && (!themeDownloading || distanceIconDownloading) && !cancellingDownload && !finalizingDownload && !distanceIconsDownloaded && parked); manageDistanceIconPackButton->setEnabledButtons(2, !themeDownloading); manageIconPackButton->setText(1, iconDownloading ? tr("CANCEL") : tr("DOWNLOAD")); manageIconPackButton->setEnabledButtons(0, !themeDownloading); - manageIconPackButton->setEnabledButtons(1, frogpilot_scene.online && (!themeDownloading || iconDownloading) && !cancellingDownload && !finalizingDownload && !iconsDownloaded && parked); + manageIconPackButton->setEnabledButtons(1, starpilot_scene.online && (!themeDownloading || iconDownloading) && !cancellingDownload && !finalizingDownload && !iconsDownloaded && parked); manageIconPackButton->setEnabledButtons(2, !themeDownloading); manageSignalAnimationButton->setText(1, signalDownloading ? tr("CANCEL") : tr("DOWNLOAD")); manageSignalAnimationButton->setEnabledButtons(0, !themeDownloading); - manageSignalAnimationButton->setEnabledButtons(1, frogpilot_scene.online && (!themeDownloading || signalDownloading) && !cancellingDownload && !finalizingDownload && !signalsDownloaded && parked); + manageSignalAnimationButton->setEnabledButtons(1, starpilot_scene.online && (!themeDownloading || signalDownloading) && !cancellingDownload && !finalizingDownload && !signalsDownloaded && parked); manageSignalAnimationButton->setEnabledButtons(2, !themeDownloading); manageSoundPackButton->setText(1, soundDownloading ? tr("CANCEL") : tr("DOWNLOAD")); manageSoundPackButton->setEnabledButtons(0, !themeDownloading); - manageSoundPackButton->setEnabledButtons(1, frogpilot_scene.online && (!themeDownloading || soundDownloading) && !cancellingDownload && !finalizingDownload && !soundsDownloaded && parked); + manageSoundPackButton->setEnabledButtons(1, starpilot_scene.online && (!themeDownloading || soundDownloading) && !cancellingDownload && !finalizingDownload && !soundsDownloaded && parked); manageSoundPackButton->setEnabledButtons(2, !themeDownloading); manageWheelIconsButton->setText(1, wheelDownloading ? tr("CANCEL") : tr("DOWNLOAD")); manageWheelIconsButton->setEnabledButtons(0, !themeDownloading); - manageWheelIconsButton->setEnabledButtons(1, frogpilot_scene.online && (!themeDownloading || wheelDownloading) && !cancellingDownload && !finalizingDownload && !wheelsDownloaded && parked); + manageWheelIconsButton->setEnabledButtons(1, starpilot_scene.online && (!themeDownloading || wheelDownloading) && !cancellingDownload && !finalizingDownload && !wheelsDownloaded && parked); manageWheelIconsButton->setEnabledButtons(2, !themeDownloading); parent->keepScreenOn = themeDownloading; } -void FrogPilotThemesPanel::updateToggles() { +void StarPilotThemesPanel::updateToggles() { for (auto &[key, toggle] : toggles) { if (parentKeys.contains(key)) { toggle->setVisible(false); @@ -910,7 +910,7 @@ void FrogPilotThemesPanel::updateToggles() { continue; } - bool setVisible = parent->tuningLevel >= parent->frogpilotToggleLevels[key].toDouble(); + bool setVisible = parent->tuningLevel >= parent->starpilotToggleLevels[key].toDouble(); if (key == "DistanceIconPack") { setVisible &= params.getBool("QOLVisuals") && params.getBool("OnroadDistanceButton"); diff --git a/frogpilot/ui/qt/offroad/theme_settings.h b/starpilot/ui/qt/offroad/theme_settings.h similarity index 71% rename from frogpilot/ui/qt/offroad/theme_settings.h rename to starpilot/ui/qt/offroad/theme_settings.h index a1a01df4..966a56b9 100644 --- a/frogpilot/ui/qt/offroad/theme_settings.h +++ b/starpilot/ui/qt/offroad/theme_settings.h @@ -1,12 +1,12 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotThemesPanel : public FrogPilotListWidget { +class StarPilotThemesPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotThemesPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotThemesPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); protected: void showEvent(QShowEvent *event) override; @@ -15,7 +15,7 @@ signals: void openSubPanel(); private: - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); void updateToggles(); bool bootLogoDownloading = false; @@ -44,15 +44,15 @@ private: QSet parentKeys; - FrogPilotButtonsControl *manageBootLogosButton; - FrogPilotButtonsControl *manageColorSchemeButton; - FrogPilotButtonsControl *manageDistanceIconPackButton; - FrogPilotButtonsControl *manageIconPackButton; - FrogPilotButtonsControl *manageSignalAnimationButton; - FrogPilotButtonsControl *manageSoundPackButton; - FrogPilotButtonsControl *manageWheelIconsButton; + StarPilotButtonsControl *manageBootLogosButton; + StarPilotButtonsControl *manageColorSchemeButton; + StarPilotButtonsControl *manageDistanceIconPackButton; + StarPilotButtonsControl *manageIconPackButton; + StarPilotButtonsControl *manageSignalAnimationButton; + StarPilotButtonsControl *manageSoundPackButton; + StarPilotButtonsControl *manageWheelIconsButton; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; LabelControl *downloadStatusLabel; diff --git a/starpilot/ui/qt/offroad/utilities.cc b/starpilot/ui/qt/offroad/utilities.cc new file mode 100644 index 00000000..e40e3557 --- /dev/null +++ b/starpilot/ui/qt/offroad/utilities.cc @@ -0,0 +1,192 @@ +#include "starpilot/ui/qt/offroad/utilities.h" + +StarPilotUtilitiesPanel::StarPilotUtilitiesPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { + forceOpenDescriptions = forceOpen; + + ParamControl *debugModeToggle = new ParamControl("DebugMode", tr("Debug Mode"), tr("Use all of StarPilot's developer metrics on your next drive to diagnose issues and improve bug reports."), ""); + if (forceOpenDescriptions) { + debugModeToggle->showDescription(); + } + addItem(debugModeToggle); + + ButtonControl *flashPandaButton = new ButtonControl(tr("Flash Panda"), tr("FLASH"), tr("Flash the latest, official firmware onto your Panda device to restore core functionality, fix bugs, or ensure you have the most up-to-date software.")); + QObject::connect(flashPandaButton, &ButtonControl::clicked, [parent, flashPandaButton, this]() { + if (ConfirmationDialog::confirm(tr("Are you sure you want to flash the Panda firmware?"), tr("Flash"), this)) { + std::thread([parent, flashPandaButton, this]() { + parent->keepScreenOn = true; + + flashPandaButton->setEnabled(false); + flashPandaButton->setValue(tr("Flashing...")); + + params_memory.putBool("FlashPanda", true); + while (params_memory.getBool("FlashPanda")) { + util::sleep_for(UI_FREQ); + } + + flashPandaButton->setValue(tr("Flashed!")); + + util::sleep_for(2500); + + flashPandaButton->setValue(tr("Rebooting...")); + + util::sleep_for(2500); + + Hardware::reboot(); + }).detach(); + } + }); + if (forceOpenDescriptions) { + flashPandaButton->showDescription(); + } + addItem(flashPandaButton); + + StarPilotButtonsControl *forceStartedButton = new StarPilotButtonsControl(tr("Force Drive State"), tr("Force openpilot to be offroad or onroad."), "", {tr("OFFROAD"), tr("ONROAD"), tr("OFF")}, true); + QObject::connect(forceStartedButton, &StarPilotButtonsControl::buttonClicked, [this](int id) { + if (id == 0) { + params.putBool("ForceOffroad", true); + params.putBool("ForceOnroad", false); + + updateStarPilotToggles(); + } else if (id == 1) { + params.put("CarParams", params.get("CarParamsPersistent")); + params.put("StarPilotCarParams", params.get("StarPilotCarParamsPersistent")); + + params.putBool("ForceOffroad", false); + params.putBool("ForceOnroad", true); + + updateStarPilotToggles(); + } else if (id == 2) { + params.putBool("ForceOffroad", false); + params.putBool("ForceOnroad", false); + + updateStarPilotToggles(); + } + }); + forceStartedButton->setCheckedButton(2); + if (forceOpenDescriptions) { + forceStartedButton->showDescription(); + } + addItem(forceStartedButton); + + ButtonControl *reportIssueButton = new ButtonControl(tr("Report a Bug or an Issue"), tr("REPORT"), tr("Send a bug report so we can help fix the problem!")); + QObject::connect(reportIssueButton, &ButtonControl::clicked, [this]() { + if (!starpilotUIState()->starpilot_scene.online) { + ConfirmationDialog::alert(tr("Please connect to the internet before sending a report!"), this); + return; + } + + QStringList report_messages = { + tr("Acceleration feels harsh or jerky"), + tr("An alert was unclear and I'm not sure what it meant"), + tr("Braking is too sudden or uncomfortable"), + tr("I'm not sure if this is normal or a bug:"), + tr("My steering wheel buttons aren't working"), + tr("openpilot disengages when I don't expect it"), + tr("openpilot feels sluggish or slow to respond"), + tr("Something else (please describe)") + }; + + if (QFile::exists("/data/error_logs/error.txt")) { + report_messages.prepend(tr("I saw an alert that said \"openpilot crashed\"")); + } + + QString selected_issue = MultiOptionDialog::getSelection(tr("What's going on?"), report_messages, "", this); + if (selected_issue.isEmpty()) { + return; + } + + if (selected_issue.contains("crashed") || selected_issue.contains("not sure") || selected_issue.contains("Something else")) { + QString extra_input = InputDialog::getText(tr("Please describe what's happening"), this, tr("Send Report"), false, 10, "", 300).trimmed(); + if (extra_input.isEmpty()) { + return; + } + selected_issue += " — " + extra_input; + } + + QString discord_user = InputDialog::getText(tr("What's your Discord username?"), this, tr("Send Report"), false, -1, QString::fromStdString(params.get("DiscordUsername"))).trimmed(); + + QJsonObject reportData; + reportData["DiscordUser"] = discord_user; + reportData["Issue"] = selected_issue; + + params.putNonBlocking("DiscordUsername", discord_user.toStdString()); + params_memory.put("IssueReported", QJsonDocument(reportData).toJson(QJsonDocument::Compact).toStdString()); + + ConfirmationDialog::alert(tr("Report Sent! Thanks for letting us know!"), this); + }); + if (forceOpenDescriptions) { + reportIssueButton->showDescription(); + } + addItem(reportIssueButton); + reportIssueButton->setVisible(true); + + ButtonControl *resetTogglesButton = new ButtonControl(tr("Reset Toggles to Default"), tr("RESET"), tr("Reset all toggles to their default values.")); + QObject::connect(resetTogglesButton, &ButtonControl::clicked, [parent, resetTogglesButton, this]() { + if (ConfirmationDialog::confirm(tr("Are you sure you want to reset all toggles to their default values?"), tr("Reset"), this)) { + std::thread([parent, resetTogglesButton, this]() { + parent->keepScreenOn = true; + + resetTogglesButton->setEnabled(false); + resetTogglesButton->setValue(tr("Resetting...")); + + std::vector all_keys = params.allKeys(); + for (const std::string &key : all_keys) { + if (excluded_keys.count(key)) { + continue; + } + std::optional default_value = params.getKeyDefaultValue(key); + if (default_value.has_value()) { + params.put(key, default_value.value()); + } + } + + updateStarPilotToggles(); + + resetTogglesButton->setValue(tr("Reset!")); + + util::sleep_for(2500); + + resetTogglesButton->setValue(""); + }).detach(); + } + }); + if (forceOpenDescriptions) { + resetTogglesButton->showDescription(); + } + addItem(resetTogglesButton); + + ButtonControl *resetTogglesButtonStock = new ButtonControl(tr("Reset Toggles to Stock openpilot"), tr("RESET"), tr("Reset all toggles to match stock openpilot.")); + QObject::connect(resetTogglesButtonStock, &ButtonControl::clicked, [parent, resetTogglesButtonStock, this]() { + if (ConfirmationDialog::confirm(tr("Are you sure you want to reset all toggles to match stock openpilot?"), tr("Reset"), this)) { + std::thread([parent, resetTogglesButtonStock, this]() { + parent->keepScreenOn = true; + + resetTogglesButtonStock->setEnabled(false); + resetTogglesButtonStock->setValue(tr("Resetting...")); + + std::vector all_keys = params.allKeys(); + for (const std::string &key : all_keys) { + if (excluded_keys.count(key)) { + continue; + } + std::optional stock_value = params.getStockValue(key); + if (stock_value.has_value()) { + params.put(key, stock_value.value()); + } + } + + updateStarPilotToggles(); + + resetTogglesButtonStock->setValue(tr("Reset!")); + + util::sleep_for(2500); + + resetTogglesButtonStock->setValue(""); + }).detach(); + } + }); + if (forceOpenDescriptions) { + resetTogglesButtonStock->showDescription(); + } + addItem(resetTogglesButtonStock); +} diff --git a/starpilot/ui/qt/offroad/utilities.h b/starpilot/ui/qt/offroad/utilities.h new file mode 100644 index 00000000..db87e068 --- /dev/null +++ b/starpilot/ui/qt/offroad/utilities.h @@ -0,0 +1,25 @@ +#pragma once + +#include "starpilot/ui/qt/offroad/starpilot_settings.h" + +class StarPilotUtilitiesPanel : public StarPilotListWidget { + Q_OBJECT + +public: + explicit StarPilotUtilitiesPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); + +private: + bool forceOpenDescriptions; + + StarPilotSettingsWindow *parent; + + Params params; + Params params_memory{"", true}; + + std::set excluded_keys = { + "AvailableModels", "AvailableModelNames", "StarPilotStats", + "GithubSshKeys", "GithubUsername", "MapBoxRequests", + "ModelDrivesAndScores", "OverpassRequests", "SpeedLimits", + "SpeedLimitsFiltered", "UpdaterAvailableBranches", + }; +}; diff --git a/frogpilot/ui/qt/offroad/vehicle_settings.cc b/starpilot/ui/qt/offroad/vehicle_settings.cc similarity index 89% rename from frogpilot/ui/qt/offroad/vehicle_settings.cc rename to starpilot/ui/qt/offroad/vehicle_settings.cc index 78c25594..b4ba72bb 100644 --- a/frogpilot/ui/qt/offroad/vehicle_settings.cc +++ b/starpilot/ui/qt/offroad/vehicle_settings.cc @@ -1,6 +1,6 @@ #include -#include "frogpilot/ui/qt/offroad/vehicle_settings.h" +#include "starpilot/ui/qt/offroad/vehicle_settings.h" #include "system/hardware/hw.h" QStringList getCarNames(const QString &carMake, QMap &carModels) { @@ -91,13 +91,13 @@ QStringList getCarNames(const QString &carMake, QMap &carModel return carNames; } -FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotVehiclesPanel::StarPilotVehiclesPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; QStackedLayout *vehiclesLayout = new QStackedLayout(); addItem(vehiclesLayout); - FrogPilotListWidget *settingsList = new FrogPilotListWidget(this); + StarPilotListWidget *settingsList = new StarPilotListWidget(this); ScrollView *vehiclesPanel = new ScrollView(settingsList, this); @@ -137,9 +137,9 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, disableOpenpilotLong = new ParamControl("DisableOpenpilotLongitudinal", tr("Disable openpilot Longitudinal Control"), tr("Disable openpilot longitudinal and use the car's stock ACC instead."), ""); QObject::connect(disableOpenpilotLong, &ToggleControl::toggleFlipped, [parent, this](bool state) { if (state) { - if (FrogPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely disable openpilot longitudinal control?"), this)) { + if (StarPilotConfirmationDialog::yesorno(tr("Are you sure you want to completely disable openpilot longitudinal control?"), this)) { if (started) { - if (FrogPilotConfirmationDialog::toggleReboot(this)) { + if (StarPilotConfirmationDialog::toggleReboot(this)) { Hardware::reboot(); } } @@ -154,11 +154,11 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, }); settingsList->addItem(disableOpenpilotLong); - FrogPilotListWidget *gmList = new FrogPilotListWidget(this); - FrogPilotListWidget *hkgList = new FrogPilotListWidget(this); - FrogPilotListWidget *subaruList = new FrogPilotListWidget(this); - FrogPilotListWidget *toyotaList = new FrogPilotListWidget(this); - FrogPilotListWidget *vehicleInfoList = new FrogPilotListWidget(this); + StarPilotListWidget *gmList = new StarPilotListWidget(this); + StarPilotListWidget *hkgList = new StarPilotListWidget(this); + StarPilotListWidget *subaruList = new StarPilotListWidget(this); + StarPilotListWidget *toyotaList = new StarPilotListWidget(this); + StarPilotListWidget *vehicleInfoList = new StarPilotListWidget(this); ScrollView *gmPanel = new ScrollView(gmList, this); ScrollView *hkgPanel = new ScrollView(hkgList, this); @@ -173,20 +173,20 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, vehiclesLayout->addWidget(vehicleInfoPanel); std::vector> vehicleToggles { - {"GMToggles", tr("General Motors Settings"), tr("FrogPilot features for General Motors vehicles."), ""}, + {"GMToggles", tr("General Motors Settings"), tr("StarPilot features for General Motors vehicles."), ""}, {"GMPedalLongitudinal", tr("Use Pedal For Longitudinal"), tr("Use the pedal interceptor for full longitudinal control on supported GM vehicles."), ""}, {"LongPitch", tr("Smooth Pedal Response on Hills"), tr("Smoothen acceleration and braking when driving downhill/uphill."), ""}, {"RemoteStartBootsComma", tr("Remote Start Boots comma"), tr("Use the remote-start GM panda firmware at boot.

Required for GM remote-start startup signal behavior."), ""}, {"RemapCancelToDistance", tr("Remap Cancel To Distance"), tr("On pedal-interceptor Bolts, remap the steering-wheel CANCEL button to distance/personality input."), ""}, {"VoltSNG", tr("Stop-and-Go Hack"), tr("Force stop-and-go on the 2017 Chevy Volt."), ""}, - {"HKGToggles", tr("Hyundai/Kia/Genesis Settings"), tr("FrogPilot features for Genesis, Hyundai, and Kia vehicles."), ""}, + {"HKGToggles", tr("Hyundai/Kia/Genesis Settings"), tr("StarPilot features for Genesis, Hyundai, and Kia vehicles."), ""}, {"TacoTuneHacks", tr("\"Taco Bell Run\" Torque Hack"), tr("The steering torque hack from comma's 2022 \"Taco Bell Run\". Designed to increase steering torque at low speeds for left and right turns."), ""}, - {"SubaruToggles", tr("Subaru Settings"), tr("FrogPilot features for Subaru vehicles."), ""}, + {"SubaruToggles", tr("Subaru Settings"), tr("StarPilot features for Subaru vehicles."), ""}, {"SubaruSNG", tr("Stop and Go"), tr("Stop and go for supported Subaru vehicles."), ""}, - {"ToyotaToggles", tr("Toyota/Lexus Settings"), tr("FrogPilot features for Lexus and Toyota vehicles."), ""}, + {"ToyotaToggles", tr("Toyota/Lexus Settings"), tr("StarPilot features for Lexus and Toyota vehicles."), ""}, {"ToyotaDoors", tr("Automatically Lock/Unlock Doors"), tr("Automatically lock/unlock doors when shifting in and out of drive."), ""}, {"ClusterOffset", tr("Dashboard Speed Offset"), tr("The speed offset openpilot uses to match the speed on the dashboard display."), ""}, {"FrogsGoMoosTweak", tr("FrogsGoMoo's Personal Tweaks"), tr("Personal tweaks by FrogsGoMoo for quicker acceleration and smoother braking."), ""}, @@ -240,17 +240,17 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, } else if (param == "ToyotaDoors") { std::vector lockToggles{"LockDoors", "UnlockDoors"}; std::vector lockToggleNames{tr("Lock"), tr("Unlock")}; - vehicleToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, lockToggles, lockToggleNames); + vehicleToggle = new StarPilotButtonToggleControl(param, title, desc, icon, lockToggles, lockToggleNames); } else if (param == "LockDoorsTimer") { std::map autoLockLabels; for (int i = 0; i <= 300; ++i) { autoLockLabels[i] = i == 0 ? tr("Never") : QString::number(i) + tr(" seconds"); } - vehicleToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 300, QString(), autoLockLabels, 5); + vehicleToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 300, QString(), autoLockLabels, 5); } else if (param == "ClusterOffset") { std::vector clusterOffsetButton{"Reset"}; - FrogPilotParamValueButtonControl *clusterOffsetToggle = new FrogPilotParamValueButtonControl(param, title, desc, icon, 1.000, 1.050, "x", std::map(), 0.001, false, {}, clusterOffsetButton, false, false); - QObject::connect(clusterOffsetToggle, &FrogPilotParamValueButtonControl::buttonClicked, [clusterOffsetToggle, this]() { + StarPilotParamValueButtonControl *clusterOffsetToggle = new StarPilotParamValueButtonControl(param, title, desc, icon, 1.000, 1.050, "x", std::map(), 0.001, false, {}, clusterOffsetButton, false, false); + QObject::connect(clusterOffsetToggle, &StarPilotParamValueButtonControl::buttonClicked, [clusterOffsetToggle, this]() { params.putFloat("ClusterOffset", std::stof(params.getKeyDefaultValue("ClusterOffset").value())); clusterOffsetToggle->refresh(); }); @@ -289,7 +289,7 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, } if (ButtonControl *buttonControl = qobject_cast(vehicleToggle)) { - QObject::connect(buttonControl, &ButtonControl::clicked, this, &FrogPilotVehiclesPanel::openSubPanel); + QObject::connect(buttonControl, &ButtonControl::clicked, this, &StarPilotVehiclesPanel::openSubPanel); } QObject::connect(vehicleToggle, &AbstractControl::hideDescriptionEvent, [this]() { @@ -300,18 +300,18 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, }); } - static_cast(toggles["LockDoorsTimer"])->setWarning("Warning: openpilot can't detect if keys are still inside the car, so ensure you have a spare key to prevent accidental lockouts!"); + static_cast(toggles["LockDoorsTimer"])->setWarning("Warning: openpilot can't detect if keys are still inside the car, so ensure you have a spare key to prevent accidental lockouts!"); QSet rebootKeys = {"RemapCancelToDistance", "TacoTuneHacks"}; for (const QString &key : rebootKeys) { QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, [key, this](bool state) { if (started) { if (key == "TacoTuneHacks" && state) { - if (FrogPilotConfirmationDialog::toggleReboot(this)) { + if (StarPilotConfirmationDialog::toggleReboot(this)) { Hardware::reboot(); } } else if (key != "TacoTuneHacks") { - if (FrogPilotConfirmationDialog::toggleReboot(this)) { + if (StarPilotConfirmationDialog::toggleReboot(this)) { Hardware::reboot(); } } @@ -322,7 +322,7 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, ParamControl *remoteStartToggle = static_cast(toggles["RemoteStartBootsComma"]); QObject::connect(remoteStartToggle, &ToggleControl::toggleFlipped, [parent, remoteStartToggle, this](bool state) { const QString prompt = tr("Remote Start requires a Panda firmware update. Flash the Panda now?"); - if (!FrogPilotConfirmationDialog::yesorno(prompt, this)) { + if (!StarPilotConfirmationDialog::yesorno(prompt, this)) { params.putBool("RemoteStartBootsComma", !state); remoteStartToggle->refresh(); return; @@ -347,7 +347,7 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, }).detach(); }); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [vehiclesLayout, vehiclesPanel, this] { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [vehiclesLayout, vehiclesPanel, this] { if (forceOpenDescriptions) { openDescriptions(forceOpenDescriptions, toggles); disableOpenpilotLong->showDescription(); @@ -355,10 +355,10 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, } vehiclesLayout->setCurrentWidget(vehiclesPanel); }); - QObject::connect(uiState(), &UIState::uiUpdate, this, &FrogPilotVehiclesPanel::updateState); + QObject::connect(uiState(), &UIState::uiUpdate, this, &StarPilotVehiclesPanel::updateState); } -void FrogPilotVehiclesPanel::showEvent(QShowEvent *event) { +void StarPilotVehiclesPanel::showEvent(QShowEvent *event) { if (forceOpenDescriptions) { disableOpenpilotLong->showDescription(); forceFingerprint->showDescription(); @@ -380,7 +380,7 @@ void FrogPilotVehiclesPanel::showEvent(QShowEvent *event) { updateToggles(); } -void FrogPilotVehiclesPanel::updateState(const UIState &s) { +void StarPilotVehiclesPanel::updateState(const UIState &s) { if (!isVisible()) { return; } @@ -388,7 +388,7 @@ void FrogPilotVehiclesPanel::updateState(const UIState &s) { started = s.scene.started; } -void FrogPilotVehiclesPanel::updateToggles() { +void StarPilotVehiclesPanel::updateToggles() { for (auto &[key, toggle] : toggles) { if (parentKeys.contains(key)) { toggle->setVisible(false); @@ -400,7 +400,7 @@ void FrogPilotVehiclesPanel::updateToggles() { continue; } - bool setVisible = parent->tuningLevel >= parent->frogpilotToggleLevels[key].toDouble(); + bool setVisible = parent->tuningLevel >= parent->starpilotToggleLevels[key].toDouble(); if (gmKeys.contains(key)) { setVisible &= parent->isGM; @@ -459,8 +459,8 @@ void FrogPilotVehiclesPanel::updateToggles() { } } - disableOpenpilotLong->setVisible((parent->hasOpenpilotLongitudinal || parent->openpilotLongitudinalControlDisabled) && !parent->hasAlphaLongitudinal && parent->tuningLevel >= parent->frogpilotToggleLevels["DisableOpenpilotLongitudinal"].toBool()); - forceFingerprint->setVisible(parent->tuningLevel >= parent->frogpilotToggleLevels["ForceFingerprint"].toBool()); + disableOpenpilotLong->setVisible((parent->hasOpenpilotLongitudinal || parent->openpilotLongitudinalControlDisabled) && !parent->hasAlphaLongitudinal && parent->tuningLevel >= parent->starpilotToggleLevels["DisableOpenpilotLongitudinal"].toBool()); + forceFingerprint->setVisible(parent->tuningLevel >= parent->starpilotToggleLevels["ForceFingerprint"].toBool()); openDescriptions(forceOpenDescriptions, toggles); diff --git a/frogpilot/ui/qt/offroad/vehicle_settings.h b/starpilot/ui/qt/offroad/vehicle_settings.h similarity index 83% rename from frogpilot/ui/qt/offroad/vehicle_settings.h rename to starpilot/ui/qt/offroad/vehicle_settings.h index 2f584ef9..78bd0c49 100644 --- a/frogpilot/ui/qt/offroad/vehicle_settings.h +++ b/starpilot/ui/qt/offroad/vehicle_settings.h @@ -1,12 +1,12 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotVehiclesPanel : public FrogPilotListWidget { +class StarPilotVehiclesPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotVehiclesPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotVehiclesPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); signals: void openSubPanel(); @@ -32,7 +32,7 @@ private: QSet parentKeys; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; ParamControl *disableOpenpilotLong; ParamControl *forceFingerprint; diff --git a/frogpilot/ui/qt/offroad/visual_settings.cc b/starpilot/ui/qt/offroad/visual_settings.cc similarity index 83% rename from frogpilot/ui/qt/offroad/visual_settings.cc rename to starpilot/ui/qt/offroad/visual_settings.cc index 9b4905ff..a9735084 100644 --- a/frogpilot/ui/qt/offroad/visual_settings.cc +++ b/starpilot/ui/qt/offroad/visual_settings.cc @@ -1,22 +1,22 @@ -#include "frogpilot/ui/qt/offroad/visual_settings.h" +#include "starpilot/ui/qt/offroad/visual_settings.h" -FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotVisualsPanel::StarPilotVisualsPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; QStackedLayout *visualsLayout = new QStackedLayout(); addItem(visualsLayout); - FrogPilotListWidget *visualsList = new FrogPilotListWidget(this); + StarPilotListWidget *visualsList = new StarPilotListWidget(this); ScrollView *visualsPanel = new ScrollView(visualsList, this); visualsLayout->addWidget(visualsPanel); - FrogPilotListWidget *advancedCustomList = new FrogPilotListWidget(this); - FrogPilotListWidget *customUIList = new FrogPilotListWidget(this); - FrogPilotListWidget *modelUIList = new FrogPilotListWidget(this); - FrogPilotListWidget *navigationUIList = new FrogPilotListWidget(this); - FrogPilotListWidget *qualityOfLifeList = new FrogPilotListWidget(this); + StarPilotListWidget *advancedCustomList = new StarPilotListWidget(this); + StarPilotListWidget *customUIList = new StarPilotListWidget(this); + StarPilotListWidget *modelUIList = new StarPilotListWidget(this); + StarPilotListWidget *navigationUIList = new StarPilotListWidget(this); + StarPilotListWidget *qualityOfLifeList = new StarPilotListWidget(this); ScrollView *advancedCustomPanel = new ScrollView(advancedCustomList, this); ScrollView *customUIPanel = new ScrollView(customUIList, this); @@ -31,7 +31,7 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent, bo visualsLayout->addWidget(qualityOfLifePanel); const std::vector> visualToggles { - {"AdvancedCustomUI", tr("Advanced UI Controls"), tr("Advanced visual changes to fine-tune how the driving screen looks."), "../../frogpilot/assets/toggle_icons/icon_advanced_device.png"}, + {"AdvancedCustomUI", tr("Advanced UI Controls"), tr("Advanced visual changes to fine-tune how the driving screen looks."), "../../starpilot/assets/toggle_icons/icon_advanced_device.png"}, {"HideSpeed", tr("Hide Current Speed"), tr("Hide the current speed from the driving screen."), ""}, {"HideLeadMarker", tr("Hide Lead Marker"), tr("Hide the lead-vehicle marker from the driving screen."), ""}, {"HideMaxSpeed", tr("Hide Max Speed"), tr("Hide the max speed from the driving screen."), ""}, @@ -39,7 +39,7 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent, bo {"HideSpeedLimit", tr("Hide Speed Limits"), tr("Hide posted speed limits from the driving screen."), ""}, {"WheelSpeed", tr("Use Wheel Speed"), tr("Use the vehicle's wheel speed instead of the cluster speed. This is purely a visual change and doesn't impact how openpilot drives!"), ""}, - {"CustomUI", tr("Driving Screen Widgets"), tr("Custom FrogPilot widgets for the driving screen."), "../assets/icons/calibration.png"}, + {"CustomUI", tr("Driving Screen Widgets"), tr("Custom StarPilot widgets for the driving screen."), "../assets/icons/calibration.png"}, {"AccelerationPath", tr("Acceleration Path"), tr("Color the driving path by planned acceleration and braking."), ""}, {"AdjacentPath", tr("Adjacent Lanes"), tr("Show the driving paths for the left and right lanes."), ""}, {"BlindSpotPath", tr("Blind Spot Path"), tr("Show a red path when a vehicle is in that lane's blind spot."), ""}, @@ -48,20 +48,20 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent, bo {"PedalsOnUI", tr("Gas / Brake Pedal Indicators"), tr("On-screen gas and brake indicators.

Dynamic: Opacity changes according to how much openpilot is accelerating or braking
Static: Full when active, dim when not"), ""}, {"RotatingWheel", tr("Rotating Steering Wheel"), tr("Rotate the driving screen wheel with the physical steering wheel."), ""}, - {"ModelUI", tr("Model UI"), tr("Model visualizations for the driving path, lane lines, path edges, and road edges."), "../../frogpilot/assets/toggle_icons/icon_road.png"}, + {"ModelUI", tr("Model UI"), tr("Model visualizations for the driving path, lane lines, path edges, and road edges."), "../../starpilot/assets/toggle_icons/icon_road.png"}, {"DynamicPathWidth", tr("Dynamic Path Width"), tr("Change the path width based on engagement.

Fully Engaged: 100%
Always On Lateral: 75%
Disengaged: 50%"), ""}, {"LaneLinesWidth", tr("Lane Lines Width"), tr("Set the lane-line thickness.

Default matches the MUTCD lane-line width standard of 4 inches."), ""}, {"PathEdgeWidth", tr("Path Edges Width"), tr("Set the driving-path edge width that represents different driving modes and statuses.

Default is 20% of the total path width.

Color Guide:

- Light Blue: Always On Lateral
- Green: Default
- Orange: Experimental Mode
- Red: Traffic Mode
- Yellow: Conditional Experimental Mode overridden"), ""}, {"PathWidth", tr("Path Width"), tr("Set the driving-path width.

Default (6.1 feet) matches the width of a 2019 Lexus ES 350."), ""}, {"RoadEdgesWidth", tr("Road Edges Width"), tr("Set the road-edge thickness.

Default matches half of the MUTCD lane-line width standard of 4 inches."), ""}, - {"NavigationUI", tr("Navigation Widgets"), tr("Speed limits, and other navigation widgets."), "../../frogpilot/assets/toggle_icons/icon_map.png"}, + {"NavigationUI", tr("Navigation Widgets"), tr("Speed limits, and other navigation widgets."), "../../starpilot/assets/toggle_icons/icon_map.png"}, {"RoadNameUI", tr("Road Name"), tr("Display the road name at the bottom of the driving screen using data from \"OpenStreetMap (OSM)\"."), ""}, {"ShowSpeedLimits", tr("Show Speed Limits"), tr("Show speed limits in the top-left corner of the driving screen. Uses data from the car's dashboard (if supported) and \"OpenStreetMap (OSM)\"."), ""}, {"SLCMapboxFiller", tr("Show Speed Limits from Mapbox"), tr("Use Mapbox speed-limit data when no other source is available."), ""}, {"UseVienna", tr("Use Vienna-Style Speed Signs"), tr("Show Vienna-style (EU) speed-limit signs instead of MUTCD (US)."), ""}, - {"QOLVisuals", tr("Quality of Life"), tr("Miscellaneous visual changes to fine-tune how the driving screen looks."), "../../frogpilot/assets/toggle_icons/icon_quality_of_life.png"}, + {"QOLVisuals", tr("Quality of Life"), tr("Miscellaneous visual changes to fine-tune how the driving screen looks."), "../../starpilot/assets/toggle_icons/icon_quality_of_life.png"}, {"CameraView", tr("Camera View"), tr("Select the active camera view. This is purely a visual change and doesn't impact how openpilot drives!"), ""}, {"DriverCamera", tr("Show Driver Camera When In Reverse"), tr("Show the driver camera feed when the vehicle is in reverse."), ""}, {"StoppedTimer", tr("Stopped Timer"), tr("Show a timer when stopped in place of the current speed to indicate how long the vehicle has been stopped."), ""} @@ -71,23 +71,23 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent, bo AbstractControl *visualToggle; if (param == "AdvancedCustomUI") { - FrogPilotManageControl *advancedCustomUIToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(advancedCustomUIToggle, &FrogPilotManageControl::manageButtonClicked, [visualsLayout, advancedCustomPanel]() { + StarPilotManageControl *advancedCustomUIToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(advancedCustomUIToggle, &StarPilotManageControl::manageButtonClicked, [visualsLayout, advancedCustomPanel]() { visualsLayout->setCurrentWidget(advancedCustomPanel); }); visualToggle = advancedCustomUIToggle; } else if (param == "CustomUI") { - FrogPilotManageControl *customUIToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(customUIToggle, &FrogPilotManageControl::manageButtonClicked, [visualsLayout, customUIPanel]() { + StarPilotManageControl *customUIToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(customUIToggle, &StarPilotManageControl::manageButtonClicked, [visualsLayout, customUIPanel]() { visualsLayout->setCurrentWidget(customUIPanel); }); visualToggle = customUIToggle; } else if (param == "PedalsOnUI") { std::vector pedalsToggles{"DynamicPedalsOnUI", "StaticPedalsOnUI"}; std::vector pedalsToggleNames{tr("Dynamic"), tr("Static")}; - FrogPilotButtonToggleControl *pedalsToggle = new FrogPilotButtonToggleControl(param, title, desc, icon, pedalsToggles, pedalsToggleNames, true); - QObject::connect(pedalsToggle, &FrogPilotButtonToggleControl::buttonClicked, [this](int id) { + StarPilotButtonToggleControl *pedalsToggle = new StarPilotButtonToggleControl(param, title, desc, icon, pedalsToggles, pedalsToggleNames, true); + QObject::connect(pedalsToggle, &StarPilotButtonToggleControl::buttonClicked, [this](int id) { if (id == 0) { params.putBool("StaticPedalsOnUI", false); } else if (id == 1) { @@ -97,32 +97,32 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent, bo visualToggle = pedalsToggle; } else if (param == "ModelUI") { - FrogPilotManageControl *modelUIToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(modelUIToggle, &FrogPilotManageControl::manageButtonClicked, [visualsLayout, modelUIPanel]() { + StarPilotManageControl *modelUIToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(modelUIToggle, &StarPilotManageControl::manageButtonClicked, [visualsLayout, modelUIPanel]() { visualsLayout->setCurrentWidget(modelUIPanel); }); visualToggle = modelUIToggle; } else if (param == "LaneLinesWidth" || param == "RoadEdgesWidth") { - visualToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 24, tr(" inches")); + visualToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 24, tr(" inches")); } else if (param == "PathEdgeWidth") { std::map pathEdgeLabels; for (int i = 0; i <= 100; ++i) { pathEdgeLabels[i] = i == 0 ? tr("Off") : QString::number(i) + "%"; } - visualToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 100, QString(), pathEdgeLabels); + visualToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 100, QString(), pathEdgeLabels); } else if (param == "PathWidth") { - visualToggle = new FrogPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" feet"), std::map(), 0.1); + visualToggle = new StarPilotParamValueControl(param, title, desc, icon, 0, 10, tr(" feet"), std::map(), 0.1); } else if (param == "NavigationUI") { - FrogPilotManageControl *navigationUIToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(navigationUIToggle, &FrogPilotManageControl::manageButtonClicked, [visualsLayout, navigationUIPanel]() { + StarPilotManageControl *navigationUIToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(navigationUIToggle, &StarPilotManageControl::manageButtonClicked, [visualsLayout, navigationUIPanel]() { visualsLayout->setCurrentWidget(navigationUIPanel); }); visualToggle = navigationUIToggle; } else if (param == "QOLVisuals") { - FrogPilotManageControl *qolToggle = new FrogPilotManageControl(param, title, desc, icon); - QObject::connect(qolToggle, &FrogPilotManageControl::manageButtonClicked, [visualsLayout, qualityOfLifePanel]() { + StarPilotManageControl *qolToggle = new StarPilotManageControl(param, title, desc, icon); + QObject::connect(qolToggle, &StarPilotManageControl::manageButtonClicked, [visualsLayout, qualityOfLifePanel]() { visualsLayout->setCurrentWidget(qualityOfLifePanel); }); visualToggle = qolToggle; @@ -153,8 +153,8 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent, bo parentKeys.insert(param); } - if (FrogPilotManageControl *frogPilotManageToggle = qobject_cast(visualToggle)) { - QObject::connect(frogPilotManageToggle, &FrogPilotManageControl::manageButtonClicked, [this]() { + if (StarPilotManageControl *frogPilotManageToggle = qobject_cast(visualToggle)) { + QObject::connect(frogPilotManageToggle, &StarPilotManageControl::manageButtonClicked, [this]() { emit openSubPanel(); openDescriptions(forceOpenDescriptions, toggles); }); @@ -170,26 +170,26 @@ FrogPilotVisualsPanel::FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent, bo QSet forceUpdateKeys = {"HideLeadMarker", "ShowSpeedLimits"}; for (const QString &key : forceUpdateKeys) { - QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, this, &FrogPilotVisualsPanel::updateToggles); + QObject::connect(static_cast(toggles[key]), &ToggleControl::toggleFlipped, this, &StarPilotVisualsPanel::updateToggles); } openDescriptions(forceOpenDescriptions, toggles); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubPanel, [visualsLayout, visualsPanel, this] { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubPanel, [visualsLayout, visualsPanel, this] { openDescriptions(forceOpenDescriptions, toggles); visualsLayout->setCurrentWidget(visualsPanel); }); - QObject::connect(parent, &FrogPilotSettingsWindow::closeSubSubPanel, [this]() { + QObject::connect(parent, &StarPilotSettingsWindow::closeSubSubPanel, [this]() { openDescriptions(forceOpenDescriptions, toggles); }); - QObject::connect(parent, &FrogPilotSettingsWindow::updateMetric, this, &FrogPilotVisualsPanel::updateMetric); + QObject::connect(parent, &StarPilotSettingsWindow::updateMetric, this, &StarPilotVisualsPanel::updateMetric); } -void FrogPilotVisualsPanel::showEvent(QShowEvent *event) { +void StarPilotVisualsPanel::showEvent(QShowEvent *event) { updateToggles(); } -void FrogPilotVisualsPanel::updateMetric(bool metric, bool bootRun) { +void StarPilotVisualsPanel::updateMetric(bool metric, bool bootRun) { static bool previousMetric; if (metric != previousMetric && !bootRun) { double distanceConversion = metric ? FOOT_TO_METER : METER_TO_FOOT; @@ -228,9 +228,9 @@ void FrogPilotVisualsPanel::updateMetric(bool metric, bool bootRun) { labelsInitialized = true; } - FrogPilotParamValueControl *laneLinesWidthToggle = static_cast(toggles["LaneLinesWidth"]); - FrogPilotParamValueControl *pathWidthToggle = static_cast(toggles["PathWidth"]); - FrogPilotParamValueControl *roadEdgesWidthToggle = static_cast(toggles["RoadEdgesWidth"]); + StarPilotParamValueControl *laneLinesWidthToggle = static_cast(toggles["LaneLinesWidth"]); + StarPilotParamValueControl *pathWidthToggle = static_cast(toggles["PathWidth"]); + StarPilotParamValueControl *roadEdgesWidthToggle = static_cast(toggles["RoadEdgesWidth"]); if (metric) { laneLinesWidthToggle->setDescription(tr("Set the lane-line thickness.

Default matches the MUTCD lane-line width standard of 10 centimeters.")); @@ -253,7 +253,7 @@ void FrogPilotVisualsPanel::updateMetric(bool metric, bool bootRun) { } } -void FrogPilotVisualsPanel::updateToggles() { +void StarPilotVisualsPanel::updateToggles() { for (auto &[key, toggle] : toggles) { if (parentKeys.contains(key)) { toggle->setVisible(false); @@ -265,7 +265,7 @@ void FrogPilotVisualsPanel::updateToggles() { continue; } - bool setVisible = parent->tuningLevel >= parent->frogpilotToggleLevels[key].toDouble(); + bool setVisible = parent->tuningLevel >= parent->starpilotToggleLevels[key].toDouble(); if (key == "AccelerationPath") { setVisible &= parent->hasOpenpilotLongitudinal; diff --git a/frogpilot/ui/qt/offroad/visual_settings.h b/starpilot/ui/qt/offroad/visual_settings.h similarity index 82% rename from frogpilot/ui/qt/offroad/visual_settings.h rename to starpilot/ui/qt/offroad/visual_settings.h index 9ea1d36b..962f3418 100644 --- a/frogpilot/ui/qt/offroad/visual_settings.h +++ b/starpilot/ui/qt/offroad/visual_settings.h @@ -1,12 +1,12 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotVisualsPanel : public FrogPilotListWidget { +class StarPilotVisualsPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotVisualsPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotVisualsPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); signals: void openSubPanel(); @@ -31,7 +31,7 @@ private: QSet parentKeys; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; Params params; }; diff --git a/frogpilot/ui/qt/offroad/wheel_settings.cc b/starpilot/ui/qt/offroad/wheel_settings.cc similarity index 84% rename from frogpilot/ui/qt/offroad/wheel_settings.cc rename to starpilot/ui/qt/offroad/wheel_settings.cc index c59251f7..0a2f9490 100644 --- a/frogpilot/ui/qt/offroad/wheel_settings.cc +++ b/starpilot/ui/qt/offroad/wheel_settings.cc @@ -1,13 +1,13 @@ -#include "frogpilot/ui/qt/offroad/wheel_settings.h" +#include "starpilot/ui/qt/offroad/wheel_settings.h" -FrogPilotWheelPanel::FrogPilotWheelPanel(FrogPilotSettingsWindow *parent, bool forceOpen) : FrogPilotListWidget(parent), parent(parent) { +StarPilotWheelPanel::StarPilotWheelPanel(StarPilotSettingsWindow *parent, bool forceOpen) : StarPilotListWidget(parent), parent(parent) { forceOpenDescriptions = forceOpen; const std::vector> wheelToggles { - {"DistanceButtonControl", tr("Distance Button"), tr("Action performed when the \"Distance\" button is pressed."), "../../frogpilot/assets/toggle_icons/icon_mute.png"}, - {"LongDistanceButtonControl", tr("Distance Button (Long Press)"), tr("Action performed when the \"Distance\" button is pressed for more than 0.5 seconds."), "../../frogpilot/assets/toggle_icons/icon_mute.png"}, - {"VeryLongDistanceButtonControl", tr("Distance Button (Very Long Press)"), tr("Action performed when the \"Distance\" button is pressed for more than 2.5 seconds."), "../../frogpilot/assets/toggle_icons/icon_mute.png"}, - {"LKASButtonControl", tr("LKAS Button"), tr("Action performed when the \"LKAS\" button is pressed."), "../../frogpilot/assets/toggle_icons/icon_mute.png"} + {"DistanceButtonControl", tr("Distance Button"), tr("Action performed when the \"Distance\" button is pressed."), "../../starpilot/assets/toggle_icons/icon_mute.png"}, + {"LongDistanceButtonControl", tr("Distance Button (Long Press)"), tr("Action performed when the \"Distance\" button is pressed for more than 0.5 seconds."), "../../starpilot/assets/toggle_icons/icon_mute.png"}, + {"VeryLongDistanceButtonControl", tr("Distance Button (Very Long Press)"), tr("Action performed when the \"Distance\" button is pressed for more than 2.5 seconds."), "../../starpilot/assets/toggle_icons/icon_mute.png"}, + {"LKASButtonControl", tr("LKAS Button"), tr("Action performed when the \"LKAS\" button is pressed."), "../../starpilot/assets/toggle_icons/icon_mute.png"} }; for (const auto &[param, title, desc, icon] : wheelToggles) { @@ -62,13 +62,13 @@ FrogPilotWheelPanel::FrogPilotWheelPanel(FrogPilotSettingsWindow *parent, bool f openDescriptions(forceOpenDescriptions, toggles); } -void FrogPilotWheelPanel::showEvent(QShowEvent *event) { +void StarPilotWheelPanel::showEvent(QShowEvent *event) { updateToggles(); } -void FrogPilotWheelPanel::updateToggles() { +void StarPilotWheelPanel::updateToggles() { for (auto &[key, toggle] : toggles) { - bool setVisible = parent->tuningLevel >= parent->frogpilotToggleLevels[key].toDouble(); + bool setVisible = parent->tuningLevel >= parent->starpilotToggleLevels[key].toDouble(); if (key == "LKASButtonControl") { setVisible &= !parent->isSubaru; diff --git a/frogpilot/ui/qt/offroad/wheel_settings.h b/starpilot/ui/qt/offroad/wheel_settings.h similarity index 54% rename from frogpilot/ui/qt/offroad/wheel_settings.h rename to starpilot/ui/qt/offroad/wheel_settings.h index 458c72bd..a8995bcd 100644 --- a/frogpilot/ui/qt/offroad/wheel_settings.h +++ b/starpilot/ui/qt/offroad/wheel_settings.h @@ -1,12 +1,12 @@ #pragma once -#include "frogpilot/ui/qt/offroad/frogpilot_settings.h" +#include "starpilot/ui/qt/offroad/starpilot_settings.h" -class FrogPilotWheelPanel : public FrogPilotListWidget { +class StarPilotWheelPanel : public StarPilotListWidget { Q_OBJECT public: - explicit FrogPilotWheelPanel(FrogPilotSettingsWindow *parent, bool forceOpen = false); + explicit StarPilotWheelPanel(StarPilotSettingsWindow *parent, bool forceOpen = false); protected: void showEvent(QShowEvent *event) override; @@ -18,7 +18,7 @@ private: std::map toggles; - FrogPilotSettingsWindow *parent; + StarPilotSettingsWindow *parent; Params params; }; diff --git a/frogpilot/ui/qt/onroad/moc_frogpilot_annotated_camera.cc b/starpilot/ui/qt/onroad/moc_starpilot_annotated_camera.cc similarity index 64% rename from frogpilot/ui/qt/onroad/moc_frogpilot_annotated_camera.cc rename to starpilot/ui/qt/onroad/moc_starpilot_annotated_camera.cc index 4571e5dc..f48e0585 100644 --- a/frogpilot/ui/qt/onroad/moc_frogpilot_annotated_camera.cc +++ b/starpilot/ui/qt/onroad/moc_starpilot_annotated_camera.cc @@ -1,16 +1,16 @@ /**************************************************************************** -** Meta object code from reading C++ file 'frogpilot_annotated_camera.h' +** Meta object code from reading C++ file 'starpilot_annotated_camera.h' ** ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8) ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ -#include "frogpilot_annotated_camera.h" +#include "starpilot_annotated_camera.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'frogpilot_annotated_camera.h' doesn't include ." +#error "The header file 'starpilot_annotated_camera.h' doesn't include ." #elif Q_MOC_OUTPUT_REVISION != 67 #error "This file was generated using the moc from 5.12.8. It" #error "cannot be used with the include files from this version of Qt." @@ -20,25 +20,25 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotAnnotatedCameraWidget_t { +struct qt_meta_stringdata_StarPilotAnnotatedCameraWidget_t { QByteArrayData data[1]; char stringdata0[31]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotAnnotatedCameraWidget_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotAnnotatedCameraWidget_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotAnnotatedCameraWidget_t qt_meta_stringdata_FrogPilotAnnotatedCameraWidget = { +static const qt_meta_stringdata_StarPilotAnnotatedCameraWidget_t qt_meta_stringdata_StarPilotAnnotatedCameraWidget = { { -QT_MOC_LITERAL(0, 0, 30) // "FrogPilotAnnotatedCameraWidget" +QT_MOC_LITERAL(0, 0, 30) // "StarPilotAnnotatedCameraWidget" }, - "FrogPilotAnnotatedCameraWidget" + "StarPilotAnnotatedCameraWidget" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotAnnotatedCameraWidget[] = { +static const uint qt_meta_data_StarPilotAnnotatedCameraWidget[] = { // content: 8, // revision @@ -54,7 +54,7 @@ static const uint qt_meta_data_FrogPilotAnnotatedCameraWidget[] = { 0 // eod }; -void FrogPilotAnnotatedCameraWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotAnnotatedCameraWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { Q_UNUSED(_o); Q_UNUSED(_id); @@ -62,30 +62,30 @@ void FrogPilotAnnotatedCameraWidget::qt_static_metacall(QObject *_o, QMetaObject Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotAnnotatedCameraWidget::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotAnnotatedCameraWidget::staticMetaObject = { { &QWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotAnnotatedCameraWidget.data, - qt_meta_data_FrogPilotAnnotatedCameraWidget, + qt_meta_stringdata_StarPilotAnnotatedCameraWidget.data, + qt_meta_data_StarPilotAnnotatedCameraWidget, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotAnnotatedCameraWidget::metaObject() const +const QMetaObject *StarPilotAnnotatedCameraWidget::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotAnnotatedCameraWidget::qt_metacast(const char *_clname) +void *StarPilotAnnotatedCameraWidget::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotAnnotatedCameraWidget.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotAnnotatedCameraWidget.stringdata0)) return static_cast(this); return QWidget::qt_metacast(_clname); } -int FrogPilotAnnotatedCameraWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotAnnotatedCameraWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); return _id; diff --git a/frogpilot/ui/qt/onroad/moc_frogpilot_buttons.cc b/starpilot/ui/qt/onroad/moc_starpilot_buttons.cc similarity index 94% rename from frogpilot/ui/qt/onroad/moc_frogpilot_buttons.cc rename to starpilot/ui/qt/onroad/moc_starpilot_buttons.cc index bc04f9d9..1ef1dcc5 100644 --- a/frogpilot/ui/qt/onroad/moc_frogpilot_buttons.cc +++ b/starpilot/ui/qt/onroad/moc_starpilot_buttons.cc @@ -1,16 +1,16 @@ /**************************************************************************** -** Meta object code from reading C++ file 'frogpilot_buttons.h' +** Meta object code from reading C++ file 'starpilot_buttons.h' ** ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8) ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ -#include "frogpilot_buttons.h" +#include "starpilot_buttons.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'frogpilot_buttons.h' doesn't include ." +#error "The header file 'starpilot_buttons.h' doesn't include ." #elif Q_MOC_OUTPUT_REVISION != 67 #error "This file was generated using the moc from 5.12.8. It" #error "cannot be used with the include files from this version of Qt." diff --git a/frogpilot/ui/qt/onroad/moc_frogpilot_onroad.cc b/starpilot/ui/qt/onroad/moc_starpilot_onroad.cc similarity index 65% rename from frogpilot/ui/qt/onroad/moc_frogpilot_onroad.cc rename to starpilot/ui/qt/onroad/moc_starpilot_onroad.cc index 7cd7189f..e37db6a1 100644 --- a/frogpilot/ui/qt/onroad/moc_frogpilot_onroad.cc +++ b/starpilot/ui/qt/onroad/moc_starpilot_onroad.cc @@ -1,16 +1,16 @@ /**************************************************************************** -** Meta object code from reading C++ file 'frogpilot_onroad.h' +** Meta object code from reading C++ file 'starpilot_onroad.h' ** ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8) ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ -#include "frogpilot_onroad.h" +#include "starpilot_onroad.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'frogpilot_onroad.h' doesn't include ." +#error "The header file 'starpilot_onroad.h' doesn't include ." #elif Q_MOC_OUTPUT_REVISION != 67 #error "This file was generated using the moc from 5.12.8. It" #error "cannot be used with the include files from this version of Qt." @@ -20,25 +20,25 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotOnroadWindow_t { +struct qt_meta_stringdata_StarPilotOnroadWindow_t { QByteArrayData data[1]; char stringdata0[22]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotOnroadWindow_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotOnroadWindow_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotOnroadWindow_t qt_meta_stringdata_FrogPilotOnroadWindow = { +static const qt_meta_stringdata_StarPilotOnroadWindow_t qt_meta_stringdata_StarPilotOnroadWindow = { { -QT_MOC_LITERAL(0, 0, 21) // "FrogPilotOnroadWindow" +QT_MOC_LITERAL(0, 0, 21) // "StarPilotOnroadWindow" }, - "FrogPilotOnroadWindow" + "StarPilotOnroadWindow" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotOnroadWindow[] = { +static const uint qt_meta_data_StarPilotOnroadWindow[] = { // content: 8, // revision @@ -54,7 +54,7 @@ static const uint qt_meta_data_FrogPilotOnroadWindow[] = { 0 // eod }; -void FrogPilotOnroadWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotOnroadWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { Q_UNUSED(_o); Q_UNUSED(_id); @@ -62,30 +62,30 @@ void FrogPilotOnroadWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotOnroadWindow::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotOnroadWindow::staticMetaObject = { { &QWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotOnroadWindow.data, - qt_meta_data_FrogPilotOnroadWindow, + qt_meta_stringdata_StarPilotOnroadWindow.data, + qt_meta_data_StarPilotOnroadWindow, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotOnroadWindow::metaObject() const +const QMetaObject *StarPilotOnroadWindow::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotOnroadWindow::qt_metacast(const char *_clname) +void *StarPilotOnroadWindow::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotOnroadWindow.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotOnroadWindow.stringdata0)) return static_cast(this); return QWidget::qt_metacast(_clname); } -int FrogPilotOnroadWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotOnroadWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); return _id; diff --git a/frogpilot/ui/qt/onroad/frogpilot_annotated_camera.cc b/starpilot/ui/qt/onroad/starpilot_annotated_camera.cc similarity index 81% rename from frogpilot/ui/qt/onroad/frogpilot_annotated_camera.cc rename to starpilot/ui/qt/onroad/starpilot_annotated_camera.cc index afdee9c0..5870ff2f 100644 --- a/frogpilot/ui/qt/onroad/frogpilot_annotated_camera.cc +++ b/starpilot/ui/qt/onroad/starpilot_annotated_camera.cc @@ -1,58 +1,58 @@ #include -#include "frogpilot/ui/qt/onroad/frogpilot_annotated_camera.h" +#include "starpilot/ui/qt/onroad/starpilot_annotated_camera.h" -FrogPilotAnnotatedCameraWidget::FrogPilotAnnotatedCameraWidget(QWidget *parent) : QWidget(parent) { +StarPilotAnnotatedCameraWidget::StarPilotAnnotatedCameraWidget(QWidget *parent) : QWidget(parent) { animationTimer = new QTimer(this); QSize iconSize(img_size / 4, img_size / 4); - brakePedalImg = loadPixmap("../../frogpilot/assets/other_images/brake_pedal.png", {btn_size, btn_size}); - curveSpeedIcon = loadPixmap("../../frogpilot/assets/other_images/curve_speed.png", {btn_size, btn_size}); + brakePedalImg = loadPixmap("../../starpilot/assets/other_images/brake_pedal.png", {btn_size, btn_size}); + curveSpeedIcon = loadPixmap("../../starpilot/assets/other_images/curve_speed.png", {btn_size, btn_size}); curveSpeedIconFlipped = curveSpeedIcon.transformed(QTransform().scale(-1, 1)); - dashboardIcon = loadPixmap("../../frogpilot/assets/other_images/dashboard_icon.png", {btn_size / 2, btn_size / 2}).scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); - gasPedalImg = loadPixmap("../../frogpilot/assets/other_images/gas_pedal.png", {btn_size, btn_size}); - mapboxIcon = loadPixmap("../../frogpilot/assets/other_images/mapbox_icon.png", {btn_size / 2, btn_size / 2}).scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); - mapDataIcon = loadPixmap("../../frogpilot/assets/other_images/offline_maps_icon.png", {btn_size / 2, btn_size / 2}).scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); - nextMapsIcon = loadPixmap("../../frogpilot/assets/other_images/next_maps_icon.png", {btn_size / 2, btn_size / 2}).scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); - pausedIcon = loadPixmap("../../frogpilot/assets/other_images/paused_icon.png", {widget_size, widget_size}); - speedIcon = loadPixmap("../../frogpilot/assets/other_images/speed_icon.png", {widget_size, widget_size}); - stopSignImg = loadPixmap("../../frogpilot/assets/other_images/stop_sign.png", {btn_size, btn_size}); - turnIcon = loadPixmap("../../frogpilot/assets/other_images/turn_icon.png", {widget_size, widget_size}); + dashboardIcon = loadPixmap("../../starpilot/assets/other_images/dashboard_icon.png", {btn_size / 2, btn_size / 2}).scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); + gasPedalImg = loadPixmap("../../starpilot/assets/other_images/gas_pedal.png", {btn_size, btn_size}); + mapboxIcon = loadPixmap("../../starpilot/assets/other_images/mapbox_icon.png", {btn_size / 2, btn_size / 2}).scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); + mapDataIcon = loadPixmap("../../starpilot/assets/other_images/offline_maps_icon.png", {btn_size / 2, btn_size / 2}).scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); + nextMapsIcon = loadPixmap("../../starpilot/assets/other_images/next_maps_icon.png", {btn_size / 2, btn_size / 2}).scaled(iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); + pausedIcon = loadPixmap("../../starpilot/assets/other_images/paused_icon.png", {widget_size, widget_size}); + speedIcon = loadPixmap("../../starpilot/assets/other_images/speed_icon.png", {widget_size, widget_size}); + stopSignImg = loadPixmap("../../starpilot/assets/other_images/stop_sign.png", {btn_size, btn_size}); + turnIcon = loadPixmap("../../starpilot/assets/other_images/turn_icon.png", {widget_size, widget_size}); - loadGif("../../frogpilot/assets/other_images/curve_icon.gif", cemCurveIcon, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/lead_icon.gif", cemLeadIcon, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/speed_icon.gif", cemSpeedIcon, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/light_icon.gif", cemStopIcon, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/turn_icon.gif", cemTurnIcon, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/chill_mode_icon.gif", chillModeIcon, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/experimental_mode_icon.gif", experimentalModeIcon, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/weather_clear_day.gif", weatherClearDay, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/weather_clear_night.gif", weatherClearNight, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/weather_low_visibility.gif", weatherLowVisibility, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/weather_rain.gif", weatherRain, QSize(widget_size, widget_size), this); - loadGif("../../frogpilot/assets/other_images/weather_snow.gif", weatherSnow, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/curve_icon.gif", cemCurveIcon, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/lead_icon.gif", cemLeadIcon, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/speed_icon.gif", cemSpeedIcon, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/light_icon.gif", cemStopIcon, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/turn_icon.gif", cemTurnIcon, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/chill_mode_icon.gif", chillModeIcon, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/experimental_mode_icon.gif", experimentalModeIcon, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/weather_clear_day.gif", weatherClearDay, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/weather_clear_night.gif", weatherClearNight, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/weather_low_visibility.gif", weatherLowVisibility, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/weather_rain.gif", weatherRain, QSize(widget_size, widget_size), this); + loadGif("../../starpilot/assets/other_images/weather_snow.gif", weatherSnow, QSize(widget_size, widget_size), this); QObject::connect(animationTimer, &QTimer::timeout, [this] { animationFrameIndex = (animationFrameIndex + 1) % totalFrames; }); - QObject::connect(frogpilotUIState(), &FrogPilotUIState::themeUpdated, this, &FrogPilotAnnotatedCameraWidget::updateSignals); + QObject::connect(starpilotUIState(), &StarPilotUIState::themeUpdated, this, &StarPilotAnnotatedCameraWidget::updateSignals); QObject::connect(uiState(), &UIState::offroadTransition, [this] { standstillTimer.invalidate(); - QJsonObject stats = QJsonDocument::fromJson(QString::fromStdString(params.get("FrogPilotStats")).toUtf8()).object(); + QJsonObject stats = QJsonDocument::fromJson(QString::fromStdString(params.get("StarPilotStats")).toUtf8()).object(); stats["FrogHops"] = stats.value("FrogHops").toInt(0) + frogHopCount; - params.putNonBlocking("FrogPilotStats", QJsonDocument(stats).toJson(QJsonDocument::Compact).toStdString()); + params.putNonBlocking("StarPilotStats", QJsonDocument(stats).toJson(QJsonDocument::Compact).toStdString()); frogHopCount = 0; }); } -void FrogPilotAnnotatedCameraWidget::showEvent(QShowEvent *event) { +void StarPilotAnnotatedCameraWidget::showEvent(QShowEvent *event) { updateSignals(); } -void FrogPilotAnnotatedCameraWidget::updateSignals() { +void StarPilotAnnotatedCameraWidget::updateSignals() { QVector().swap(blindspotImages); QVector().swap(blindspotImagesRight); QVector().swap(signalImages); @@ -60,7 +60,7 @@ void FrogPilotAnnotatedCameraWidget::updateSignals() { bool isGif = false; - QFileInfoList files = QDir("../../frogpilot/assets/active_theme/signals/").entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::Name); + QFileInfoList files = QDir("../../starpilot/assets/active_theme/signals/").entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::Name); for (const QFileInfo &fileInfo : files) { QString fileName = fileInfo.fileName(); QString filePath = fileInfo.absoluteFilePath(); @@ -126,28 +126,28 @@ void FrogPilotAnnotatedCameraWidget::updateSignals() { } } -void FrogPilotAnnotatedCameraWidget::updateState(const UIState &s, const FrogPilotUIState &fs) { +void StarPilotAnnotatedCameraWidget::updateState(const UIState &s, const StarPilotUIState &fs) { const UIScene &scene = s.scene; const SubMaster &sm = *(s.sm); const SubMaster &fpsm = *(fs.sm); const cereal::CarState::Reader &carState = sm["carState"].getCarState(); - const cereal::FrogPilotCarState::Reader &frogpilotCarState = fpsm["frogpilotCarState"].getFrogpilotCarState(); - const cereal::FrogPilotPlan::Reader &frogpilotPlan = fpsm["frogpilotPlan"].getFrogpilotPlan(); - const cereal::FrogPilotSelfdriveState::Reader &frogpilotSelfdriveState = fpsm["frogpilotSelfdriveState"].getFrogpilotSelfdriveState(); + const cereal::StarPilotCarState::Reader &starpilotCarState = fpsm["starpilotCarState"].getStarpilotCarState(); + const cereal::StarPilotPlan::Reader &starpilotPlan = fpsm["starpilotPlan"].getStarpilotPlan(); + const cereal::StarPilotSelfdriveState::Reader &starpilotSelfdriveState = fpsm["starpilotSelfdriveState"].getStarpilotSelfdriveState(); const cereal::MapdOut::Reader &mapdOut = fpsm["mapdOut"].getMapdOut(); const cereal::ModelDataV2::Reader &modelV2 = sm["modelV2"].getModelV2(); const cereal::SelfdriveState::Reader &selfdriveState = sm["selfdriveState"].getSelfdriveState(); - if (scene.is_metric || frogpilot_toggles.value("use_si_metrics").toBool()) { + if (scene.is_metric || starpilot_toggles.value("use_si_metrics").toBool()) { leadDistanceUnit = tr(" meters"); - leadSpeedUnit = frogpilot_toggles.value("use_si_metrics").toBool() ? tr(" m/s") : tr(" km/h"); + leadSpeedUnit = starpilot_toggles.value("use_si_metrics").toBool() ? tr(" m/s") : tr(" km/h"); speedUnit = scene.is_metric ? tr("km/h") : tr("mph"); distanceConversion = 1.0f; speedConversion = scene.is_metric ? MS_TO_KPH : MS_TO_MPH; - speedConversionMetrics = frogpilot_toggles.value("use_si_metrics").toBool() ? 1.0f : MS_TO_KPH; + speedConversionMetrics = starpilot_toggles.value("use_si_metrics").toBool() ? 1.0f : MS_TO_KPH; } else { leadDistanceUnit = tr(" feet"); leadSpeedUnit = tr(" mph"); @@ -163,46 +163,46 @@ void FrogPilotAnnotatedCameraWidget::updateState(const UIState &s, const FrogPil blindspotRight = carState.getRightBlindspot(); blinkerLeft = carState.getLeftBlinker(); blinkerRight = carState.getRightBlinker(); - brakeLights = frogpilotCarState.getBrakeLights(); - cscControllingSpeed = frogpilotPlan.getCscControllingSpeed(); - cscSpeed = frogpilotPlan.getCscSpeed(); - cscTraining = frogpilotPlan.getCscTraining(); - dashboardSpeedLimit = frogpilotCarState.getDashboardSpeedLimit(); - desiredFollowDistance = frogpilotPlan.getDesiredFollowDistance(); + brakeLights = starpilotCarState.getBrakeLights(); + cscControllingSpeed = starpilotPlan.getCscControllingSpeed(); + cscSpeed = starpilotPlan.getCscSpeed(); + cscTraining = starpilotPlan.getCscTraining(); + dashboardSpeedLimit = starpilotCarState.getDashboardSpeedLimit(); + desiredFollowDistance = starpilotPlan.getDesiredFollowDistance(); experimentalMode = selfdriveState.getExperimentalMode(); - forceCoast = frogpilotCarState.getForceCoast(); - laneWidthLeft = frogpilotPlan.getLaneWidthLeft(); - laneWidthRight = frogpilotPlan.getLaneWidthRight(); - lateralPaused = frogpilotCarState.getPauseLateral(); - longitudinalPaused = frogpilotCarState.getPauseLongitudinal(); - mapSpeedLimit = frogpilotPlan.getSlcMapSpeedLimit(); - mapboxSpeedLimit = frogpilotPlan.getSlcMapboxSpeedLimit(); - nextSpeedLimit = frogpilotPlan.getSlcNextSpeedLimit(); - redLight = frogpilotPlan.getRedLight(); - roadCurvature = frogpilotPlan.getRoadCurvature(); + forceCoast = starpilotCarState.getForceCoast(); + laneWidthLeft = starpilotPlan.getLaneWidthLeft(); + laneWidthRight = starpilotPlan.getLaneWidthRight(); + lateralPaused = starpilotCarState.getPauseLateral(); + longitudinalPaused = starpilotCarState.getPauseLongitudinal(); + mapSpeedLimit = starpilotPlan.getSlcMapSpeedLimit(); + mapboxSpeedLimit = starpilotPlan.getSlcMapboxSpeedLimit(); + nextSpeedLimit = starpilotPlan.getSlcNextSpeedLimit(); + redLight = starpilotPlan.getRedLight(); + roadCurvature = starpilotPlan.getRoadCurvature(); roadName = QString::fromStdString(mapdOut.getRoadName()); - slcOverriddenSpeed = frogpilotPlan.getSlcOverriddenSpeed(); - speedLimit = slcOverriddenSpeed != 0 ? slcOverriddenSpeed : frogpilotPlan.getSlcSpeedLimit(); - speedLimitChanged = frogpilotPlan.getSpeedLimitChanged(); - speedLimitSource = frogpilotPlan.getSlcSpeedLimitSource(); + slcOverriddenSpeed = starpilotPlan.getSlcOverriddenSpeed(); + speedLimit = slcOverriddenSpeed != 0 ? slcOverriddenSpeed : starpilotPlan.getSlcSpeedLimit(); + speedLimitChanged = starpilotPlan.getSpeedLimitChanged(); + speedLimitSource = starpilotPlan.getSlcSpeedLimitSource(); stoppingDistance = modelV2.getPosition().getX().size() > 33 - 1 ? modelV2.getPosition().getX()[33 - 1] : 0.0; - unconfirmedSpeedLimit = frogpilotPlan.getUnconfirmedSlcSpeedLimit(); - weatherDaytime = frogpilotPlan.getWeatherDaytime(); - weatherId = frogpilotPlan.getWeatherId(); + unconfirmedSpeedLimit = starpilotPlan.getUnconfirmedSlcSpeedLimit(); + weatherDaytime = starpilotPlan.getWeatherDaytime(); + weatherId = starpilotPlan.getWeatherId(); hideBottomIcons = selfdriveState.getAlertSize() != cereal::SelfdriveState::AlertSize::NONE; - hideBottomIcons |= frogpilotSelfdriveState.getAlertSize() != cereal::FrogPilotSelfdriveState::AlertSize::NONE; + hideBottomIcons |= starpilotSelfdriveState.getAlertSize() != cereal::StarPilotSelfdriveState::AlertSize::NONE; hideBottomIcons |= signalStyle.startsWith("traditional") && (blinkerLeft || blinkerRight); - if (slcOverriddenSpeed == 0 && !frogpilot_toggles.value("show_speed_limit_offset").toBool()) { - speedLimit += frogpilotPlan.getSlcSpeedLimitOffset(); + if (slcOverriddenSpeed == 0 && !starpilot_toggles.value("show_speed_limit_offset").toBool()) { + speedLimit += starpilotPlan.getSlcSpeedLimitOffset(); } speedLimit *= (scene.is_metric ? MS_TO_KPH : MS_TO_MPH); - float speedLimitOffset = frogpilotPlan.getSlcSpeedLimitOffset() * speedConversion; + float speedLimitOffset = starpilotPlan.getSlcSpeedLimitOffset() * speedConversion; speedLimitOffsetStr = (speedLimitOffset != 0) ? QString::number(speedLimitOffset, 'f', 0).prepend((speedLimitOffset > 0) ? "+" : "-") : "–"; static int lastFrameIndex; - if (lastFrameIndex > animationFrameIndex && frogpilot_toggles.value("signal_icons").toString() == "frog") { + if (lastFrameIndex > animationFrameIndex && starpilot_toggles.value("signal_icons").toString() == "frog") { frogHopCount++; } lastFrameIndex = animationFrameIndex; @@ -232,11 +232,11 @@ void FrogPilotAnnotatedCameraWidget::updateState(const UIState &s, const FrogPil pendingLimitTimer.invalidate(); } - if (frogpilot_scene.standstill && frogpilot_toggles.value("stopped_timer").toBool()) { + if (starpilot_scene.standstill && starpilot_toggles.value("stopped_timer").toBool()) { if (!standstillTimer.isValid()) { standstillTimer.start(); } else { - standstillDuration = frogpilot_scene.started_timer / UI_FREQ < 60 ? 0 : standstillTimer.elapsed() / 1000; + standstillDuration = starpilot_scene.started_timer / UI_FREQ < 60 ? 0 : standstillTimer.elapsed() / 1000; } } else { standstillDuration = 0; @@ -244,7 +244,7 @@ void FrogPilotAnnotatedCameraWidget::updateState(const UIState &s, const FrogPil } } -void FrogPilotAnnotatedCameraWidget::mousePressEvent(QMouseEvent *mouseEvent) { +void StarPilotAnnotatedCameraWidget::mousePressEvent(QMouseEvent *mouseEvent) { if (speedLimitChanged && newSpeedLimitRect.contains(mouseEvent->pos())) { params_memory.putBool("SpeedLimitAccepted", true); mouseEvent->accept(); @@ -254,22 +254,22 @@ void FrogPilotAnnotatedCameraWidget::mousePressEvent(QMouseEvent *mouseEvent) { mouseEvent->ignore(); } -void FrogPilotAnnotatedCameraWidget::paintFrogPilotWidgets(QPainter &p, UIState &s) { - if (!hideBottomIcons && frogpilot_toggles.value("cem_status").toBool()) { +void StarPilotAnnotatedCameraWidget::paintStarPilotWidgets(QPainter &p, UIState &s) { + if (!hideBottomIcons && starpilot_toggles.value("cem_status").toBool()) { paintCEMStatus(p); } else { cemStatusPosition.setX(0); cemStatusPosition.setY(0); } - if (!hideBottomIcons && frogpilot_toggles.value("compass").toBool()) { + if (!hideBottomIcons && starpilot_toggles.value("compass").toBool()) { paintCompass(p); } else { compassPosition.setX(0); compassPosition.setY(0); } - if (!speedLimitChanged && !(signalStyle == "static" && blinkerLeft) && frogpilot_toggles.value("csc_status").toBool()) { + if (!speedLimitChanged && !(signalStyle == "static" && blinkerLeft) && starpilot_toggles.value("csc_status").toBool()) { if (cscTraining) { paintCurveSpeedControlTraining(p); } else if (isCruiseSet && cscControllingSpeed) { @@ -288,7 +288,7 @@ void FrogPilotAnnotatedCameraWidget::paintFrogPilotWidgets(QPainter &p, UIState paintLongitudinalPaused(p); } - if (frogpilot_toggles.value("pedals_on_ui").toBool()) { + if (starpilot_toggles.value("pedals_on_ui").toBool()) { paintPedalIcons(p); } @@ -296,22 +296,22 @@ void FrogPilotAnnotatedCameraWidget::paintFrogPilotWidgets(QPainter &p, UIState paintPendingSpeedLimit(p); } - if (frogpilot_toggles.value("radar_tracks").toBool()) { + if (starpilot_toggles.value("radar_tracks").toBool()) { paintRadarTracks(p); } - if (frogpilot_toggles.value("road_name_ui").toBool()) { + if (starpilot_toggles.value("road_name_ui").toBool()) { paintRoadName(p); } - bool hideSpeedLimit = !speedLimitChanged && frogpilot_toggles.value("hide_speed_limit").toBool(); - if (!hideSpeedLimit && (frogpilot_toggles.value("show_speed_limits").toBool() || frogpilot_toggles.value("speed_limit_controller").toBool())) { + bool hideSpeedLimit = !speedLimitChanged && starpilot_toggles.value("hide_speed_limit").toBool(); + if (!hideSpeedLimit && (starpilot_toggles.value("show_speed_limits").toBool() || starpilot_toggles.value("speed_limit_controller").toBool())) { paintSpeedLimit(p); } else { speedLimitHeight = 0; } - if (frogpilot_toggles.value("speed_limit_sources").toBool()) { + if (starpilot_toggles.value("speed_limit_sources").toBool()) { paintSpeedLimitSources(p); } @@ -319,7 +319,7 @@ void FrogPilotAnnotatedCameraWidget::paintFrogPilotWidgets(QPainter &p, UIState paintStandstillTimer(p); } - if (track_vertices.length() >= 1 && redLight && frogpilot_toggles.value("show_stopping_point").toBool()) { + if (track_vertices.length() >= 1 && redLight && starpilot_toggles.value("show_stopping_point").toBool()) { paintStoppingPoint(p); } @@ -332,7 +332,7 @@ void FrogPilotAnnotatedCameraWidget::paintFrogPilotWidgets(QPainter &p, UIState } } -void FrogPilotAnnotatedCameraWidget::paintAdjacentPaths(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintAdjacentPaths(QPainter &p) { std::function paintPath = [&](const QPolygonF &path, bool isLeft, bool isBlindSpot, float laneWidth) { if (laneWidth == 0.0f) { return; @@ -341,12 +341,12 @@ void FrogPilotAnnotatedCameraWidget::paintAdjacentPaths(QPainter &p) { p.save(); QLinearGradient gradient(0, height(), 0, 0); - if (isBlindSpot && frogpilot_toggles.value("blind_spot_path").toBool()) { + if (isBlindSpot && starpilot_toggles.value("blind_spot_path").toBool()) { gradient.setColorAt(0.0f, QColor::fromHslF(0.0f, 0.75f, 0.5f, 0.4f)); gradient.setColorAt(0.5f, QColor::fromHslF(0.0f, 0.75f, 0.5f, 0.35f)); gradient.setColorAt(1.0f, QColor::fromHslF(0.0f, 0.75f, 0.5f, 0.0f)); } else { - float ratio = std::clamp(laneWidth / frogpilot_toggles.value("lane_detection_width").toDouble(), 0.0, 1.0); + float ratio = std::clamp(laneWidth / starpilot_toggles.value("lane_detection_width").toDouble(), 0.0, 1.0); float hue = (ratio * ratio) * (120.0f / 360.0f); gradient.setColorAt(0.0f, QColor::fromHslF(hue, 0.75f, 0.5f, 0.4f)); @@ -357,9 +357,9 @@ void FrogPilotAnnotatedCameraWidget::paintAdjacentPaths(QPainter &p) { p.setBrush(gradient); p.drawPolygon(path); - if (frogpilot_toggles.value("adjacent_path_metrics").toBool()) { + if (starpilot_toggles.value("adjacent_path_metrics").toBool()) { QString text; - if (isBlindSpot && frogpilot_toggles.value("blind_spot_path").toBool()) { + if (isBlindSpot && starpilot_toggles.value("blind_spot_path").toBool()) { text = tr("Vehicle in blind spot"); } else { text = QString::number(laneWidth * distanceConversion, 'f', 2) + leadDistanceUnit; @@ -389,7 +389,7 @@ void FrogPilotAnnotatedCameraWidget::paintAdjacentPaths(QPainter &p) { paintPath(track_adjacent_vertices[1], false, blindspotRight, laneWidthRight); } -void FrogPilotAnnotatedCameraWidget::paintBlindSpotPath(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintBlindSpotPath(QPainter &p) { p.save(); QLinearGradient bs(0, height(), 0, 0); @@ -408,7 +408,7 @@ void FrogPilotAnnotatedCameraWidget::paintBlindSpotPath(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintCEMStatus(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintCEMStatus(QPainter &p) { if (dmIconPosition == QPoint(0, 0)) { return; } @@ -421,7 +421,7 @@ void FrogPilotAnnotatedCameraWidget::paintCEMStatus(QPainter &p) { QRect cemWidget(cemStatusPosition, QSize(widget_size, widget_size)); p.setBrush(blackColor(166)); - if (frogpilot_scene.conditional_status == 1) { + if (starpilot_scene.conditional_status == 1) { p.setPen(QPen(QColor(bg_colors[STATUS_CEM_DISABLED]), 10)); } else if (experimentalMode) { p.setPen(QPen(QColor(bg_colors[STATUS_EXPERIMENTAL_MODE_ENABLED]), 10)); @@ -432,19 +432,19 @@ void FrogPilotAnnotatedCameraWidget::paintCEMStatus(QPainter &p) { QSharedPointer icon = chillModeIcon; if (experimentalMode) { - if (frogpilot_scene.conditional_status == 1) { + if (starpilot_scene.conditional_status == 1) { icon = chillModeIcon; - } else if (frogpilot_scene.conditional_status == 2) { + } else if (starpilot_scene.conditional_status == 2) { icon = experimentalModeIcon; - } else if (frogpilot_scene.conditional_status == 3) { + } else if (starpilot_scene.conditional_status == 3) { icon = cemCurveIcon; - } else if (frogpilot_scene.conditional_status == 4) { + } else if (starpilot_scene.conditional_status == 4) { icon = cemLeadIcon; - } else if (frogpilot_scene.conditional_status == 5) { + } else if (starpilot_scene.conditional_status == 5) { icon = cemTurnIcon; - } else if (frogpilot_scene.conditional_status == 6 || frogpilot_scene.conditional_status == 7) { + } else if (starpilot_scene.conditional_status == 6 || starpilot_scene.conditional_status == 7) { icon = cemSpeedIcon; - } else if (frogpilot_scene.conditional_status == 8) { + } else if (starpilot_scene.conditional_status == 8) { icon = cemStopIcon; } else { icon = experimentalModeIcon; @@ -455,7 +455,7 @@ void FrogPilotAnnotatedCameraWidget::paintCEMStatus(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintCompass(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintCompass(QPainter &p) { if (dmIconPosition == QPoint(0, 0)) { return; } @@ -541,7 +541,7 @@ void FrogPilotAnnotatedCameraWidget::paintCompass(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintCurveSpeedControl(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintCurveSpeedControl(QPainter &p) { p.save(); QRect curveSpeedRect(QPoint(setSpeedRect.right() + UI_BORDER_SIZE, setSpeedRect.top()), QSize(defaultSize.width() * 1.25, defaultSize.width() * 1.25)); @@ -564,7 +564,7 @@ void FrogPilotAnnotatedCameraWidget::paintCurveSpeedControl(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintCurveSpeedControlTraining(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintCurveSpeedControlTraining(QPainter &p) { p.save(); qreal phase = (glowTimer.elapsed() % 2000) / 2000.0 * 2 * M_PI; @@ -599,7 +599,7 @@ void FrogPilotAnnotatedCameraWidget::paintCurveSpeedControlTraining(QPainter &p) p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintLateralPaused(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintLateralPaused(QPainter &p) { if (dmIconPosition == QPoint(0, 0)) { return; } @@ -628,7 +628,7 @@ void FrogPilotAnnotatedCameraWidget::paintLateralPaused(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintLeadMetrics(QPainter &p, bool adjacent, QPointF *chevron, const cereal::RadarState::LeadData::Reader &lead_data) { +void StarPilotAnnotatedCameraWidget::paintLeadMetrics(QPainter &p, bool adjacent, QPointF *chevron, const cereal::RadarState::LeadData::Reader &lead_data) { float leadDistance = lead_data.getDRel() + (adjacent ? std::abs(lead_data.getYRel()) : 0.0f); float leadSpeed = std::max(lead_data.getVLead(), 0.0f); @@ -641,7 +641,7 @@ void FrogPilotAnnotatedCameraWidget::paintLeadMetrics(QPainter &p, bool adjacent textLines.append(QString("%1 %2").arg(distanceString, leadDistanceUnit)); textLines.append(QString("%1 %2").arg(speedString, leadSpeedUnit)); } else { - if (frogpilot_toggles.value("openpilot_longitudinal").toBool()) { + if (starpilot_toggles.value("openpilot_longitudinal").toBool()) { int desiredDistance = std::max(0, qRound(desiredFollowDistance * distanceConversion)); textLines.append(QString("%1 %2 (%3)").arg(distanceString, leadDistanceUnit, tr("Desired: %1").arg(desiredDistance))); } else { @@ -695,7 +695,7 @@ void FrogPilotAnnotatedCameraWidget::paintLeadMetrics(QPainter &p, bool adjacent } } -void FrogPilotAnnotatedCameraWidget::paintLongitudinalPaused(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintLongitudinalPaused(QPainter &p) { if (dmIconPosition == QPoint(0, 0)) { return; } @@ -727,7 +727,7 @@ void FrogPilotAnnotatedCameraWidget::paintLongitudinalPaused(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintPathEdges(QPainter &p, int height) { +void StarPilotAnnotatedCameraWidget::paintPathEdges(QPainter &p, int height) { p.save(); QLinearGradient gradient(0, height, 0, 0); @@ -738,16 +738,16 @@ void FrogPilotAnnotatedCameraWidget::paintPathEdges(QPainter &p, int height) { gradient.setColorAt(1.0f, QColor(baseColor.red(), baseColor.green(), baseColor.blue(), 255.0f * 0.0f)); }; - if (frogpilot_scene.always_on_lateral_active) { + if (starpilot_scene.always_on_lateral_active) { setPathEdgeColors(bg_colors[STATUS_ALWAYS_ON_LATERAL_ACTIVE]); - } else if (frogpilot_scene.conditional_status == 1) { + } else if (starpilot_scene.conditional_status == 1) { setPathEdgeColors(bg_colors[STATUS_CEM_DISABLED]); } else if (experimentalMode) { setPathEdgeColors(bg_colors[STATUS_EXPERIMENTAL_MODE_ENABLED]); - } else if (frogpilot_scene.traffic_mode_enabled) { + } else if (starpilot_scene.traffic_mode_enabled) { setPathEdgeColors(bg_colors[STATUS_TRAFFIC_MODE_ENABLED]); - } else if (frogpilot_toggles.value("color_scheme").toString() != "stock") { - setPathEdgeColors(QColor(frogpilot_toggles.value("path_edges_color").toString())); + } else if (starpilot_toggles.value("color_scheme").toString() != "stock") { + setPathEdgeColors(QColor(starpilot_toggles.value("path_edges_color").toString())); } else { gradient.setColorAt(0.0f, QColor::fromHslF(148.0f / 360.0f, 0.94f, 0.41f, 0.4f)); gradient.setColorAt(0.5f, QColor::fromHslF(112.0f / 360.0f, 1.0f, 0.54f, 0.35f)); @@ -764,17 +764,17 @@ void FrogPilotAnnotatedCameraWidget::paintPathEdges(QPainter &p, int height) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintPedalIcons(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintPedalIcons(QPainter &p) { p.save(); float brakeOpacity = 1.0f; float gasOpacity = 1.0f; - if (frogpilot_toggles.value("dynamic_pedals_on_ui").toBool()) { - brakeOpacity = frogpilot_scene.standstill ? 1.0f : accelerationEgo < -0.25f ? std::max(0.25f, std::abs(accelerationEgo)) : 0.25f; + if (starpilot_toggles.value("dynamic_pedals_on_ui").toBool()) { + brakeOpacity = starpilot_scene.standstill ? 1.0f : accelerationEgo < -0.25f ? std::max(0.25f, std::abs(accelerationEgo)) : 0.25f; gasOpacity = std::max(0.25f, accelerationEgo); - } else if (frogpilot_toggles.value("static_pedals_on_ui").toBool()) { - brakeOpacity = frogpilot_scene.standstill || brakeLights || accelerationEgo < -0.25f ? 1.0f : 0.25f; + } else if (starpilot_toggles.value("static_pedals_on_ui").toBool()) { + brakeOpacity = starpilot_scene.standstill || brakeLights || accelerationEgo < -0.25f ? 1.0f : 0.25f; gasOpacity = accelerationEgo > 0.25 ? 1.0f : 0.25f; } @@ -790,13 +790,13 @@ void FrogPilotAnnotatedCameraWidget::paintPedalIcons(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintPendingSpeedLimit(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintPendingSpeedLimit(QPainter &p) { p.save(); QString newSpeedLimitStr = (unconfirmedSpeedLimit > 1) ? QString::number(std::nearbyint(unconfirmedSpeedLimit * speedConversion)) : "–"; newSpeedLimitRect = speedLimitRect.translated(speedLimitRect.width() + UI_BORDER_SIZE, 0); - if (!frogpilot_toggles.value("speed_limit_vienna").toBool()) { + if (!starpilot_toggles.value("speed_limit_vienna").toBool()) { newSpeedLimitRect.setWidth(newSpeedLimitStr.size() >= 3 ? 200 : 175); p.setBrush(whiteColor()); @@ -825,7 +825,7 @@ void FrogPilotAnnotatedCameraWidget::paintPendingSpeedLimit(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintRainbowPath(QPainter &p, QLinearGradient &bg, float lin_grad_point) { +void StarPilotAnnotatedCameraWidget::paintRainbowPath(QPainter &p, QLinearGradient &bg, float lin_grad_point) { p.save(); static float hueOffset = 0.0f; @@ -846,7 +846,7 @@ void FrogPilotAnnotatedCameraWidget::paintRainbowPath(QPainter &p, QLinearGradie p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintRadarTracks(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintRadarTracks(QPainter &p) { if (radar_tracks.empty()) { return; } @@ -871,7 +871,7 @@ void FrogPilotAnnotatedCameraWidget::paintRadarTracks(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintRoadName(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintRoadName(QPainter &p) { if (roadName.isEmpty()) { return; } @@ -897,7 +897,7 @@ void FrogPilotAnnotatedCameraWidget::paintRoadName(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintSpeedLimit(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintSpeedLimit(QPainter &p) { if (setSpeedRect.isEmpty()) { return; } @@ -906,7 +906,7 @@ void FrogPilotAnnotatedCameraWidget::paintSpeedLimit(QPainter &p) { QString speedLimitStr = (speedLimit > 1) ? QString::number(std::nearbyint(speedLimit)) : "–"; - bool hasUsSpeedLimit = !frogpilot_toggles.value("speed_limit_vienna").toBool(); + bool hasUsSpeedLimit = !starpilot_toggles.value("speed_limit_vienna").toBool(); bool hasEuSpeedLimit = !hasUsSpeedLimit; int euSignSize = 176; @@ -935,7 +935,7 @@ void FrogPilotAnnotatedCameraWidget::paintSpeedLimit(QPainter &p) { p.drawRoundedRect(signRect.adjusted(9, 9, -9, -9), 16, 16); p.setOpacity(slcOverriddenSpeed == 0 ? 1.0 : 0.25); - if (slcOverriddenSpeed == 0 && frogpilot_toggles.value("show_speed_limit_offset").toBool()) { + if (slcOverriddenSpeed == 0 && starpilot_toggles.value("show_speed_limit_offset").toBool()) { p.setFont(InterFont(28, QFont::DemiBold)); p.drawText(signRect.adjusted(0, 22, 0, 0), Qt::AlignTop | Qt::AlignHCenter, tr("LIMIT")); p.setFont(InterFont(70, QFont::Bold)); @@ -960,7 +960,7 @@ void FrogPilotAnnotatedCameraWidget::paintSpeedLimit(QPainter &p) { p.setOpacity(slcOverriddenSpeed == 0 ? 1.0 : 0.25); p.setPen(blackColor()); - if (frogpilot_toggles.value("show_speed_limit_offset").toBool()) { + if (starpilot_toggles.value("show_speed_limit_offset").toBool()) { p.setFont(InterFont((speedLimitStr.size() >= 3) ? 60 : 70, QFont::Bold)); p.drawText(signRect.adjusted(0, -25, 0, 0), Qt::AlignCenter, speedLimitStr); p.setFont(InterFont(40, QFont::DemiBold)); @@ -974,7 +974,7 @@ void FrogPilotAnnotatedCameraWidget::paintSpeedLimit(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintSpeedLimitSources(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintSpeedLimitSources(QPainter &p) { p.save(); std::function drawSource = [&](QRect &rect, QPixmap &icon, const QString &title, double speedLimitValue) { @@ -1037,7 +1037,7 @@ void FrogPilotAnnotatedCameraWidget::paintSpeedLimitSources(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintStandstillTimer(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintStandstillTimer(QPainter &p) { p.save(); float transition = 0.0f; @@ -1083,14 +1083,14 @@ void FrogPilotAnnotatedCameraWidget::paintStandstillTimer(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintStoppingPoint(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintStoppingPoint(QPainter &p) { p.save(); QPointF centerPoint = (track_vertices.first() + track_vertices.last()) / 2.0f; QPointF stopSignPosition = centerPoint - QPointF(stopSignImg.width() / 2.0f, stopSignImg.height()); p.drawPixmap(stopSignPosition, stopSignImg); - if (frogpilot_toggles.value("show_stopping_point_metrics").toBool()) { + if (starpilot_toggles.value("show_stopping_point_metrics").toBool()) { float distance = stoppingDistance * distanceConversion; QString distanceText = QString::number(std::nearbyint(distance)) + leadDistanceUnit; @@ -1111,7 +1111,7 @@ void FrogPilotAnnotatedCameraWidget::paintStoppingPoint(QPainter &p) { p.restore(); } -void FrogPilotAnnotatedCameraWidget::paintTurnSignals(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintTurnSignals(QPainter &p) { int frameIndex = qBound(0, animationFrameIndex, totalFrames - 1); bool blindspotActive = blinkerLeft ? blindspotLeft : blindspotRight; @@ -1140,7 +1140,7 @@ void FrogPilotAnnotatedCameraWidget::paintTurnSignals(QPainter &p) { } } -void FrogPilotAnnotatedCameraWidget::paintWeather(QPainter &p) { +void StarPilotAnnotatedCameraWidget::paintWeather(QPainter &p) { if (weatherId == 0) { return; } diff --git a/frogpilot/ui/qt/onroad/frogpilot_annotated_camera.h b/starpilot/ui/qt/onroad/starpilot_annotated_camera.h similarity index 93% rename from frogpilot/ui/qt/onroad/frogpilot_annotated_camera.h rename to starpilot/ui/qt/onroad/starpilot_annotated_camera.h index fac5ffe1..77ace88e 100644 --- a/frogpilot/ui/qt/onroad/frogpilot_annotated_camera.h +++ b/starpilot/ui/qt/onroad/starpilot_annotated_camera.h @@ -5,20 +5,20 @@ const int widget_size = img_size + (UI_BORDER_SIZE / 2); -class FrogPilotAnnotatedCameraWidget : public QWidget { +class StarPilotAnnotatedCameraWidget : public QWidget { Q_OBJECT public: - explicit FrogPilotAnnotatedCameraWidget(QWidget *parent = 0); + explicit StarPilotAnnotatedCameraWidget(QWidget *parent = 0); void mousePressEvent(QMouseEvent *mouseEvent) override; void paintAdjacentPaths(QPainter &p); void paintBlindSpotPath(QPainter &p); - void paintFrogPilotWidgets(QPainter &p, UIState &s); + void paintStarPilotWidgets(QPainter &p, UIState &s); void paintLeadMetrics(QPainter &p, bool adjacent, QPointF *chevron, const cereal::RadarState::LeadData::Reader &lead_data); void paintPathEdges(QPainter &p, int height); void paintRainbowPath(QPainter &p, QLinearGradient &bg, float lin_grad_point); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); bool hideBottomIcons; bool isCruiseSet; @@ -32,13 +32,13 @@ public: std::vector radar_tracks; - FrogPilotUIScene frogpilot_scene; + StarPilotUIScene starpilot_scene; QColor blueColor(int alpha = 255) { return QColor(0, 0, 255, alpha); } QColor purpleColor(int alpha = 255) { return QColor(128, 0, 128, alpha); } QColor whiteColor(int alpha = 255) { return QColor(255, 255, 255, alpha); } - QJsonObject frogpilot_toggles; + QJsonObject starpilot_toggles; QPoint dmIconPosition; QPoint experimentalButtonPosition; diff --git a/frogpilot/ui/qt/onroad/frogpilot_buttons.cc b/starpilot/ui/qt/onroad/starpilot_buttons.cc similarity index 81% rename from frogpilot/ui/qt/onroad/frogpilot_buttons.cc rename to starpilot/ui/qt/onroad/starpilot_buttons.cc index c6e49b93..6c799eca 100644 --- a/frogpilot/ui/qt/onroad/frogpilot_buttons.cc +++ b/starpilot/ui/qt/onroad/starpilot_buttons.cc @@ -1,9 +1,9 @@ -#include "frogpilot/ui/qt/onroad/frogpilot_buttons.h" +#include "starpilot/ui/qt/onroad/starpilot_buttons.h" DrivingPersonalityButton::DrivingPersonalityButton(QWidget *parent) : QPushButton(parent) { setFixedSize(btn_size + UI_BORDER_SIZE, btn_size); - QObject::connect(frogpilotUIState(), &FrogPilotUIState::themeUpdated, this, &DrivingPersonalityButton::updateTheme); + QObject::connect(starpilotUIState(), &StarPilotUIState::themeUpdated, this, &DrivingPersonalityButton::updateTheme); QObject::connect(this, &QPushButton::pressed, [this] {params_memory.putBool("OnroadDistanceButtonPressed", true);}); QObject::connect(this, &QPushButton::released, [this] {params_memory.putBool("OnroadDistanceButtonPressed", false);}); } @@ -26,10 +26,10 @@ void DrivingPersonalityButton::updateTheme() { QPixmap traffic_img, aggressive_img, standard_img, relaxed_img; QSharedPointer traffic_gif, aggressive_gif, standard_gif, relaxed_gif; - loadImage("../../frogpilot/assets/active_theme/distance_icons/traffic", traffic_img, traffic_gif, QSize(btn_size, btn_size), this); - loadImage("../../frogpilot/assets/active_theme/distance_icons/aggressive", aggressive_img, aggressive_gif, QSize(btn_size, btn_size), this); - loadImage("../../frogpilot/assets/active_theme/distance_icons/standard", standard_img, standard_gif, QSize(btn_size, btn_size), this); - loadImage("../../frogpilot/assets/active_theme/distance_icons/relaxed", relaxed_img, relaxed_gif, QSize(btn_size, btn_size), this); + loadImage("../../starpilot/assets/active_theme/distance_icons/traffic", traffic_img, traffic_gif, QSize(btn_size, btn_size), this); + loadImage("../../starpilot/assets/active_theme/distance_icons/aggressive", aggressive_img, aggressive_gif, QSize(btn_size, btn_size), this); + loadImage("../../starpilot/assets/active_theme/distance_icons/standard", standard_img, standard_gif, QSize(btn_size, btn_size), this); + loadImage("../../starpilot/assets/active_theme/distance_icons/relaxed", relaxed_img, relaxed_gif, QSize(btn_size, btn_size), this); icon_map.insert(0, qMakePair(traffic_img, traffic_gif)); icon_map.insert(1, qMakePair(aggressive_img, aggressive_gif)); @@ -39,14 +39,14 @@ void DrivingPersonalityButton::updateTheme() { theme_updated = true; } -void DrivingPersonalityButton::updateState(const UIState &s, const FrogPilotUIState &fs) { +void DrivingPersonalityButton::updateState(const UIState &s, const StarPilotUIState &fs) { const UIScene &scene = s.scene; const SubMaster &fpsm = *(fs.sm); - const cereal::FrogPilotCarState::Reader &frogpilotCarState = fpsm["frogpilotCarState"].getFrogpilotCarState(); + const cereal::StarPilotCarState::Reader &starpilotCarState = fpsm["starpilotCarState"].getStarpilotCarState(); - bool new_traffic_mode_active = frogpilotCarState.getTrafficModeEnabled(); + bool new_traffic_mode_active = starpilotCarState.getTrafficModeEnabled(); int new_personality = static_cast(scene.personality) + 1; diff --git a/frogpilot/ui/qt/onroad/frogpilot_buttons.h b/starpilot/ui/qt/onroad/starpilot_buttons.h similarity index 89% rename from frogpilot/ui/qt/onroad/frogpilot_buttons.h rename to starpilot/ui/qt/onroad/starpilot_buttons.h index 39ca243a..8df57ed5 100644 --- a/frogpilot/ui/qt/onroad/frogpilot_buttons.h +++ b/starpilot/ui/qt/onroad/starpilot_buttons.h @@ -8,7 +8,7 @@ class DrivingPersonalityButton : public QPushButton { public: explicit DrivingPersonalityButton(QWidget *parent = 0); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); private: void paintEvent(QPaintEvent *event) override; diff --git a/frogpilot/ui/qt/onroad/frogpilot_onroad.cc b/starpilot/ui/qt/onroad/starpilot_onroad.cc similarity index 84% rename from frogpilot/ui/qt/onroad/frogpilot_onroad.cc rename to starpilot/ui/qt/onroad/starpilot_onroad.cc index 651c93ba..f8eff29e 100644 --- a/frogpilot/ui/qt/onroad/frogpilot_onroad.cc +++ b/starpilot/ui/qt/onroad/starpilot_onroad.cc @@ -1,18 +1,18 @@ -#include "frogpilot/ui/qt/onroad/frogpilot_onroad.h" +#include "starpilot/ui/qt/onroad/starpilot_onroad.h" -FrogPilotOnroadWindow::FrogPilotOnroadWindow(QWidget *parent) : QWidget(parent) { +StarPilotOnroadWindow::StarPilotOnroadWindow(QWidget *parent) : QWidget(parent) { signalTimer = new QTimer(this); QObject::connect(signalTimer, &QTimer::timeout, [this] { flickerActive = !flickerActive; }); } -void FrogPilotOnroadWindow::resizeEvent(QResizeEvent *event) { +void StarPilotOnroadWindow::resizeEvent(QResizeEvent *event) { rect = QWidget::rect(); marginRegion = QRegion(rect) - QRegion(rect.marginsRemoved(QMargins(UI_BORDER_SIZE, UI_BORDER_SIZE, UI_BORDER_SIZE, UI_BORDER_SIZE))); } -void FrogPilotOnroadWindow::updateState(const UIState &s, const FrogPilotUIState &fs) { +void StarPilotOnroadWindow::updateState(const UIState &s, const StarPilotUIState &fs) { const SubMaster &sm = *(s.sm); const SubMaster &fpsm = *(fs.sm); @@ -25,10 +25,10 @@ void FrogPilotOnroadWindow::updateState(const UIState &s, const FrogPilotUIState turnSignalLeft = carState.getLeftBlinker(); turnSignalRight = carState.getRightBlinker(); - showBlindspot = (blindSpotLeft || blindSpotRight) && frogpilot_toggles.value("blind_spot_metrics").toBool(); - showFPS = frogpilot_toggles.value("show_fps").toBool(); - showSignal = (turnSignalLeft || turnSignalRight) && frogpilot_toggles.value("signal_metrics").toBool(); - showSteering = frogpilot_toggles.value("steering_metrics").toBool(); + showBlindspot = (blindSpotLeft || blindSpotRight) && starpilot_toggles.value("blind_spot_metrics").toBool(); + showFPS = starpilot_toggles.value("show_fps").toBool(); + showSignal = (turnSignalLeft || turnSignalRight) && starpilot_toggles.value("signal_metrics").toBool(); + showSteering = starpilot_toggles.value("steering_metrics").toBool(); if (showSteering) { float absTorque = std::abs(torque); @@ -89,7 +89,7 @@ void FrogPilotOnroadWindow::updateState(const UIState &s, const FrogPilotUIState update(); } -void FrogPilotOnroadWindow::paintEvent(QPaintEvent *event) { +void StarPilotOnroadWindow::paintEvent(QPaintEvent *event) { QPainter p(this); p.setClipRegion(marginRegion); @@ -108,7 +108,7 @@ void FrogPilotOnroadWindow::paintEvent(QPaintEvent *event) { } } -void FrogPilotOnroadWindow::paintFPS(QPainter &p) { +void StarPilotOnroadWindow::paintFPS(QPainter &p) { p.save(); p.setFont(InterFont(28, QFont::DemiBold)); @@ -122,7 +122,7 @@ void FrogPilotOnroadWindow::paintFPS(QPainter &p) { p.restore(); } -void FrogPilotOnroadWindow::paintSteeringTorqueBorder(QPainter &p) { +void StarPilotOnroadWindow::paintSteeringTorqueBorder(QPainter &p) { p.save(); QLinearGradient gradient(rect.topLeft(), rect.bottomLeft()); @@ -143,7 +143,7 @@ void FrogPilotOnroadWindow::paintSteeringTorqueBorder(QPainter &p) { p.restore(); } -void FrogPilotOnroadWindow::paintTurnSignalBorder(QPainter &p) { +void StarPilotOnroadWindow::paintTurnSignalBorder(QPainter &p) { p.save(); p.fillRect(rect.x(), rect.y(), rect.width() / 2, rect.height(), leftBorderColor); diff --git a/frogpilot/ui/qt/onroad/frogpilot_onroad.h b/starpilot/ui/qt/onroad/starpilot_onroad.h similarity index 75% rename from frogpilot/ui/qt/onroad/frogpilot_onroad.h rename to starpilot/ui/qt/onroad/starpilot_onroad.h index 1d3ff49b..16607336 100644 --- a/frogpilot/ui/qt/onroad/frogpilot_onroad.h +++ b/starpilot/ui/qt/onroad/starpilot_onroad.h @@ -2,21 +2,21 @@ #include "selfdrive/ui/qt/onroad/annotated_camera.h" -class FrogPilotOnroadWindow : public QWidget { +class StarPilotOnroadWindow : public QWidget { Q_OBJECT public: - FrogPilotOnroadWindow(QWidget* parent = 0); + StarPilotOnroadWindow(QWidget* parent = 0); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); float fps; - FrogPilotUIScene frogpilot_scene; + StarPilotUIScene starpilot_scene; QColor bg; - QJsonObject frogpilot_toggles; + QJsonObject starpilot_toggles; private: void paintEvent(QPaintEvent *event); diff --git a/frogpilot/ui/qt/widgets/developer_sidebar.cc b/starpilot/ui/qt/widgets/developer_sidebar.cc similarity index 85% rename from frogpilot/ui/qt/widgets/developer_sidebar.cc rename to starpilot/ui/qt/widgets/developer_sidebar.cc index 5056f4e3..7fc18913 100644 --- a/frogpilot/ui/qt/widgets/developer_sidebar.cc +++ b/starpilot/ui/qt/widgets/developer_sidebar.cc @@ -1,4 +1,4 @@ -#include "frogpilot/ui/qt/widgets/developer_sidebar.h" +#include "starpilot/ui/qt/widgets/developer_sidebar.h" void DeveloperSidebar::drawMetric(QPainter &p, const QPair &label, QColor c, int y) { const QRect rect = {12, y, 275, 126}; @@ -25,7 +25,7 @@ DeveloperSidebar::DeveloperSidebar(QWidget *parent) : QFrame(parent) { setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); setFixedWidth(300); - QObject::connect(frogpilotUIState(), &FrogPilotUIState::themeUpdated, this, &DeveloperSidebar::updateToggles); + QObject::connect(starpilotUIState(), &StarPilotUIState::themeUpdated, this, &DeveloperSidebar::updateToggles); QObject::connect(uiState(), &UIState::offroadTransition, this, &DeveloperSidebar::resetVariables); QObject::connect(uiState(), &UIState::uiUpdate, this, &DeveloperSidebar::updateState); } @@ -35,18 +35,18 @@ void DeveloperSidebar::showEvent(QShowEvent *event) { } void DeveloperSidebar::updateToggles() { - FrogPilotUIState &fs = *frogpilotUIState(); - FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; - QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles; + StarPilotUIState &fs = *starpilotUIState(); + StarPilotUIScene &starpilot_scene = fs.starpilot_scene; + QJsonObject &starpilot_toggles = starpilot_scene.starpilot_toggles; metricAssignments.clear(); for (int i = 1; i <= 7; ++i) { QString key = QString("developer_sidebar_metric%1").arg(i); - int metricId = frogpilot_toggles.value(key).toInt(); + int metricId = starpilot_toggles.value(key).toInt(); metricAssignments.push_back(metricId); } - metricColor = QColor(frogpilot_toggles.value("sidebar_color1").toString()); + metricColor = QColor(starpilot_toggles.value("sidebar_color1").toString()); } void DeveloperSidebar::resetVariables() { @@ -56,25 +56,25 @@ void DeveloperSidebar::resetVariables() { totalEngagementTime = 0; } -void DeveloperSidebar::updateState(const UIState &s, const FrogPilotUIState &fs) { +void DeveloperSidebar::updateState(const UIState &s, const StarPilotUIState &fs) { if (!isVisible()) { return; } const SubMaster &sm = *(s.sm); - const FrogPilotUIScene &frogpilot_scene = fs.frogpilot_scene; + const StarPilotUIScene &starpilot_scene = fs.starpilot_scene; const SubMaster &fpsm = *(fs.sm); const cereal::CarControl::Reader &carControl = fpsm["carControl"].getCarControl(); const cereal::CarState::Reader &carState = sm["carState"].getCarState(); - const cereal::FrogPilotPlan::Reader &frogpilotPlan = fpsm["frogpilotPlan"].getFrogpilotPlan(); + const cereal::StarPilotPlan::Reader &starpilotPlan = fpsm["starpilotPlan"].getStarpilotPlan(); const cereal::LiveDelayData::Reader &liveDelay = fpsm["liveDelay"].getLiveDelay(); const cereal::LiveParametersData::Reader &liveParameters = fpsm["liveParameters"].getLiveParameters(); const cereal::LiveTorqueParametersData::Reader &liveTorqueParameters = fpsm["liveTorqueParameters"].getLiveTorqueParameters(); const bool is_metric = s.scene.is_metric; - const bool use_si = frogpilot_scene.frogpilot_toggles.value("use_si_metrics").toBool(); + const bool use_si = starpilot_scene.starpilot_toggles.value("use_si_metrics").toBool(); const QString accelerationUnit = (is_metric || use_si) ? tr(" m/s²") : tr(" ft/s²"); const float accelerationConversion = (is_metric || use_si) ? 1.0f : METER_TO_FOOT; @@ -84,9 +84,9 @@ void DeveloperSidebar::updateState(const UIState &s, const FrogPilotUIState &fs) maxAcceleration = std::max(maxAcceleration, acceleration); } - lateralEngagementTime += carControl.getLatActive() && !frogpilot_scene.reverse && !frogpilot_scene.standstill ? 1 : 0; - longitudinalEngagementTime += carControl.getLongActive() && !frogpilot_scene.reverse && !frogpilot_scene.standstill ? 1 : 0; - totalEngagementTime += !(frogpilot_scene.reverse || frogpilot_scene.standstill) || totalEngagementTime == 0 ? 1 : 0; + lateralEngagementTime += carControl.getLatActive() && !starpilot_scene.reverse && !starpilot_scene.standstill ? 1 : 0; + longitudinalEngagementTime += carControl.getLongActive() && !starpilot_scene.reverse && !starpilot_scene.standstill ? 1 : 0; + totalEngagementTime += !(starpilot_scene.reverse || starpilot_scene.standstill) || totalEngagementTime == 0 ? 1 : 0; static int maxSteerAngle = 0; int currentSteerAngle = fabs(carState.getSteeringAngleDeg()); @@ -117,17 +117,17 @@ void DeveloperSidebar::updateState(const UIState &s, const FrogPilotUIState &fs) } accelerationStatus = ItemStatus(QPair(tr("ACCEL"), QString::number(acceleration, 'f', 2) + accelerationUnit), metricColor); - accelerationJerkStatus = ItemStatus(QPair(tr("ACCEL JERK"), QString::number(frogpilotPlan.getAccelerationJerk())), metricColor); + accelerationJerkStatus = ItemStatus(QPair(tr("ACCEL JERK"), QString::number(starpilotPlan.getAccelerationJerk())), metricColor); actuatorAccelerationStatus = ItemStatus(QPair(tr("ACT ACCEL"), QString::number(carControl.getActuators().getAccel() * accelerationConversion, 'f', 2) + accelerationUnit), metricColor); - dangerFactorStatus = ItemStatus(QPair(tr("DANGER %"), QString::number(frogpilotPlan.getDangerFactor() * 100.0f, 'f', 2) + "%"), metricColor); - dangerJerkStatus = ItemStatus(QPair(tr("DANGER JERK"), QString::number(frogpilotPlan.getDangerJerk())), metricColor); + dangerFactorStatus = ItemStatus(QPair(tr("DANGER %"), QString::number(starpilotPlan.getDangerFactor() * 100.0f, 'f', 2) + "%"), metricColor); + dangerJerkStatus = ItemStatus(QPair(tr("DANGER JERK"), QString::number(starpilotPlan.getDangerJerk())), metricColor); delayStatus = ItemStatus(QPair(tr("STEER DELAY"), QString::number(liveDelay.getLateralDelay(), 'f', 5)), metricColor); frictionStatus = ItemStatus(QPair(tr("FRICTION"), QString::number(liveTorqueParameters.getFrictionCoefficientFiltered(), 'f', 5)), metricColor); latAccelStatus = ItemStatus(QPair(tr("LAT ACCEL"), QString::number(liveTorqueParameters.getLatAccelFactorFiltered(), 'f', 5)), metricColor); lateralEngagementStatus = ItemStatus(QPair(tr("LATERAL %"), QString::number((lateralEngagementTime / totalEngagementTime) * 100.0f, 'f', 2) + "%"), metricColor); longitudinalEngagementStatus = ItemStatus(QPair(tr("LONG %"), QString::number((longitudinalEngagementTime / totalEngagementTime) * 100.0f, 'f', 2) + "%"), metricColor); maxAccelerationStatus = ItemStatus(QPair(tr("MAX ACCEL"), QString::number(maxAcceleration, 'f', 2) + accelerationUnit), metricColor); - speedJerkStatus = ItemStatus(QPair(tr("SPEED JERK"), QString::number(frogpilotPlan.getSpeedJerk())), metricColor); + speedJerkStatus = ItemStatus(QPair(tr("SPEED JERK"), QString::number(starpilotPlan.getSpeedJerk())), metricColor); steerAngleStatus = ItemStatus(QPair(tr("STEER ANGLE"), steerLabel), metricColor); steerRatioStatus = ItemStatus(QPair(tr("STEER RATIO"), QString::number(liveParameters.getSteerRatio(), 'f', 5)), metricColor); stiffnessFactorStatus = ItemStatus(QPair(tr("STEER STIFF"), QString::number(liveParameters.getStiffnessFactor(), 'f', 5)), metricColor); diff --git a/frogpilot/ui/qt/widgets/developer_sidebar.h b/starpilot/ui/qt/widgets/developer_sidebar.h similarity index 94% rename from frogpilot/ui/qt/widgets/developer_sidebar.h rename to starpilot/ui/qt/widgets/developer_sidebar.h index 74d828ea..8d3183c3 100644 --- a/frogpilot/ui/qt/widgets/developer_sidebar.h +++ b/starpilot/ui/qt/widgets/developer_sidebar.h @@ -13,7 +13,7 @@ private: void paintEvent(QPaintEvent *event) override; void resetVariables(); void showEvent(QShowEvent *event); - void updateState(const UIState &s, const FrogPilotUIState &fs); + void updateState(const UIState &s, const StarPilotUIState &fs); void updateToggles(); double lateralEngagementTime; diff --git a/frogpilot/ui/qt/widgets/drive_stats.cc b/starpilot/ui/qt/widgets/drive_stats.cc similarity index 81% rename from frogpilot/ui/qt/widgets/drive_stats.cc rename to starpilot/ui/qt/widgets/drive_stats.cc index f52142ee..aaa5032f 100644 --- a/frogpilot/ui/qt/widgets/drive_stats.cc +++ b/starpilot/ui/qt/widgets/drive_stats.cc @@ -1,6 +1,6 @@ #include "selfdrive/ui/qt/request_repeater.h" -#include "frogpilot/ui/qt/widgets/drive_stats.h" +#include "starpilot/ui/qt/widgets/drive_stats.h" static QLabel *newLabel(const QString &text, const QString &type) { QLabel *label = new QLabel(text); @@ -17,7 +17,7 @@ DriveStats::DriveStats(QWidget *parent) : QFrame(parent) { addStatsLayouts(konik ? tr("ALL TIME (KONIK)") : tr("ALL TIME"), all); addStatsLayouts(konik ? tr("PAST WEEK (KONIK)") : tr("PAST WEEK"), week); - addStatsLayouts(tr("FROGPILOT"), frogPilot, true); + addStatsLayouts(tr("STARPILOT"), frogPilot, true); std::optional dongleId = getDongleId(); if (dongleId.has_value()) { @@ -32,7 +32,7 @@ DriveStats::DriveStats(QWidget *parent) : QFrame(parent) { border-radius: 10px; } - QLabel[type="frogpilot_title"] { font-size: 50px; font-weight: 500; color: #178643; } + QLabel[type="starpilot_title"] { font-size: 50px; font-weight: 500; color: #178643; } QLabel[type="number"] { font-size: 65px; font-weight: 400; } QLabel[type="title"] { font-size: 50px; font-weight: 500; } QLabel[type="unit"] { font-size: 50px; font-weight: 300; color: #A0A0A0; } @@ -45,13 +45,13 @@ void DriveStats::showEvent(QShowEvent *event) { updateStats(); } -void DriveStats::addStatsLayouts(const QString &title, StatsLabels &labels, bool FrogPilot) { +void DriveStats::addStatsLayouts(const QString &title, StatsLabels &labels, bool StarPilot) { QGridLayout *grid_layout = new QGridLayout; grid_layout->setVerticalSpacing(10); grid_layout->setContentsMargins(0, 10, 0, 10); int row = 0; - grid_layout->addWidget(newLabel(title, FrogPilot ? "frogpilot_title" : "title"), row++, 0, 1, 3); + grid_layout->addWidget(newLabel(title, StarPilot ? "starpilot_title" : "title"), row++, 0, 1, 3); grid_layout->addItem(new QSpacerItem(0, 10), row++, 0, 1, 1); grid_layout->addWidget(labels.routes = newLabel("0", "number"), row, 0, Qt::AlignLeft); @@ -88,13 +88,13 @@ void DriveStats::updateStatsForLabel(const QJsonObject &obj, StatsLabels &labels labels.routes->setText(QString::number((int)obj["routes"].toDouble())); } -void DriveStats::updateFrogPilotStatsForLabel(StatsLabels &labels) { - QJsonObject frogpilot_stats = QJsonDocument::fromJson(QByteArray::fromStdString(params.get("FrogPilotStats"))).object(); +void DriveStats::updateStarPilotStatsForLabel(StatsLabels &labels) { + QJsonObject starpilot_stats = QJsonDocument::fromJson(QByteArray::fromStdString(params.get("StarPilotStats"))).object(); - labels.distance->setText(QString::number(int(frogpilot_stats.value("FrogPilotMeters").toDouble() * (isMetric ? 0.001 : METER_TO_MILE)))); + labels.distance->setText(QString::number(int(starpilot_stats.value("StarPilotMeters").toDouble() * (isMetric ? 0.001 : METER_TO_MILE)))); labels.distance_unit->setText(isMetric ? tr("KM") : tr("Miles")); - labels.hours->setText(QString::number(int(frogpilot_stats.value("FrogPilotSeconds").toDouble() / (60 * 60)))); - labels.routes->setText(QString::number(frogpilot_stats.value("FrogPilotDrives").toInt())); + labels.hours->setText(QString::number(int(starpilot_stats.value("StarPilotSeconds").toDouble() / (60 * 60)))); + labels.routes->setText(QString::number(starpilot_stats.value("StarPilotDrives").toInt())); } void DriveStats::updateStats() { @@ -102,7 +102,7 @@ void DriveStats::updateStats() { updateStatsForLabel(json["all"].toObject(), all); updateStatsForLabel(json["week"].toObject(), week); - updateFrogPilotStatsForLabel(frogPilot); + updateStarPilotStatsForLabel(frogPilot); params.putIntNonBlocking(konik ? "KonikMinutes" : "openpilotMinutes", json["all"].toObject()["minutes"].toDouble()); } diff --git a/frogpilot/ui/qt/widgets/drive_stats.h b/starpilot/ui/qt/widgets/drive_stats.h similarity index 88% rename from frogpilot/ui/qt/widgets/drive_stats.h rename to starpilot/ui/qt/widgets/drive_stats.h index d9692998..9daba33a 100644 --- a/frogpilot/ui/qt/widgets/drive_stats.h +++ b/starpilot/ui/qt/widgets/drive_stats.h @@ -16,9 +16,9 @@ public: explicit DriveStats(QWidget *parent = 0); private: - void addStatsLayouts(const QString &title, StatsLabels &labels, bool FrogPilot = false); + void addStatsLayouts(const QString &title, StatsLabels &labels, bool StarPilot = false); void showEvent(QShowEvent *event) override; - void updateFrogPilotStatsForLabel(StatsLabels &labels); + void updateStarPilotStatsForLabel(StatsLabels &labels); void updateStats(); void updateStatsForLabel(const QJsonObject &obj, StatsLabels &labels); diff --git a/frogpilot/ui/qt/widgets/drive_summary.cc b/starpilot/ui/qt/widgets/drive_summary.cc similarity index 93% rename from frogpilot/ui/qt/widgets/drive_summary.cc rename to starpilot/ui/qt/widgets/drive_summary.cc index df6f5e51..c1844f13 100644 --- a/frogpilot/ui/qt/widgets/drive_summary.cc +++ b/starpilot/ui/qt/widgets/drive_summary.cc @@ -1,8 +1,8 @@ #include "selfdrive/ui/qt/widgets/scrollview.h" -#include "frogpilot/ui/qt/widgets/drive_summary.h" +#include "starpilot/ui/qt/widgets/drive_summary.h" -FrogPilotDriveSummary::FrogPilotDriveSummary(QWidget *parent, bool randomEvents) : QFrame(parent), displayRandomEvents(randomEvents) { +StarPilotDriveSummary::StarPilotDriveSummary(QWidget *parent, bool randomEvents) : QFrame(parent), displayRandomEvents(randomEvents) { QVBoxLayout *mainLayout = new QVBoxLayout(this); mainLayout->setContentsMargins(20, 20, 20, 20); mainLayout->setSpacing(15); @@ -70,19 +70,19 @@ FrogPilotDriveSummary::FrogPilotDriveSummary(QWidget *parent, bool randomEvents) }); QObject::connect(uiState(), &UIState::offroadTransition, [this](bool offroad) { if (!offroad) { - previousStats = QJsonDocument::fromJson(QString::fromStdString(params.get("FrogPilotStats")).toUtf8()).object(); + previousStats = QJsonDocument::fromJson(QString::fromStdString(params.get("StarPilotStats")).toUtf8()).object(); } }); } -void FrogPilotDriveSummary::mousePressEvent(QMouseEvent *e) { +void StarPilotDriveSummary::mousePressEvent(QMouseEvent *e) { emit panelClosed(); } -void FrogPilotDriveSummary::showEvent(QShowEvent *event) { +void StarPilotDriveSummary::showEvent(QShowEvent *event) { bool isMetric = params.getBool("IsMetric"); - QJsonObject currentStats = QJsonDocument::fromJson(QString::fromStdString(params.get("FrogPilotStats")).toUtf8()).object(); + QJsonObject currentStats = QJsonDocument::fromJson(QString::fromStdString(params.get("StarPilotStats")).toUtf8()).object(); if (displayRandomEvents) { QJsonObject currentRandomEvents = currentStats.value("RandomEvents").toObject(); @@ -178,16 +178,16 @@ void FrogPilotDriveSummary::showEvent(QShowEvent *event) { engagementValue->setText(QLocale().toString((trackedTime > 0) ? (engagedTime * 100 / trackedTime) : 0) + "%"); experimentalModeTimeValue->setText(QLocale().toString((trackedTime > 0) ? (experimentalTime * 100 / trackedTime) : 0) + "%"); - frogPilotMetersValue->setText(formatDistance(diffDouble("FrogPilotMeters"))); + frogPilotMetersValue->setText(formatDistance(diffDouble("StarPilotMeters"))); trackedTimeValue->setText(formatTime(trackedTime)); } } -void FrogPilotDriveSummary::hideEvent(QHideEvent *event) { +void StarPilotDriveSummary::hideEvent(QHideEvent *event) { emit panelClosed(); } -QWidget *FrogPilotDriveSummary::createStatBox(const QString &title, QLabel **valueLabel, QWidget *parent) { +QWidget *StarPilotDriveSummary::createStatBox(const QString &title, QLabel **valueLabel, QWidget *parent) { QWidget *box = new QWidget(parent); QVBoxLayout *layout = new QVBoxLayout(box); diff --git a/frogpilot/ui/qt/widgets/drive_summary.h b/starpilot/ui/qt/widgets/drive_summary.h similarity index 86% rename from frogpilot/ui/qt/widgets/drive_summary.h rename to starpilot/ui/qt/widgets/drive_summary.h index bea16c4f..ca0b36e3 100644 --- a/frogpilot/ui/qt/widgets/drive_summary.h +++ b/starpilot/ui/qt/widgets/drive_summary.h @@ -2,11 +2,11 @@ #include "selfdrive/ui/ui.h" -class FrogPilotDriveSummary : public QFrame { +class StarPilotDriveSummary : public QFrame { Q_OBJECT public: - explicit FrogPilotDriveSummary(QWidget *parent = nullptr, bool random_events = false); + explicit StarPilotDriveSummary(QWidget *parent = nullptr, bool random_events = false); signals: void panelClosed(); diff --git a/frogpilot/ui/qt/widgets/moc_developer_sidebar.cc b/starpilot/ui/qt/widgets/moc_developer_sidebar.cc similarity index 100% rename from frogpilot/ui/qt/widgets/moc_developer_sidebar.cc rename to starpilot/ui/qt/widgets/moc_developer_sidebar.cc diff --git a/frogpilot/ui/qt/widgets/moc_drive_stats.cc b/starpilot/ui/qt/widgets/moc_drive_stats.cc similarity index 100% rename from frogpilot/ui/qt/widgets/moc_drive_stats.cc rename to starpilot/ui/qt/widgets/moc_drive_stats.cc diff --git a/frogpilot/ui/qt/widgets/moc_drive_summary.cc b/starpilot/ui/qt/widgets/moc_drive_summary.cc similarity index 74% rename from frogpilot/ui/qt/widgets/moc_drive_summary.cc rename to starpilot/ui/qt/widgets/moc_drive_summary.cc index ea4bb82c..052e9ef3 100644 --- a/frogpilot/ui/qt/widgets/moc_drive_summary.cc +++ b/starpilot/ui/qt/widgets/moc_drive_summary.cc @@ -20,27 +20,27 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotDriveSummary_t { +struct qt_meta_stringdata_StarPilotDriveSummary_t { QByteArrayData data[3]; char stringdata0[35]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotDriveSummary_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotDriveSummary_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotDriveSummary_t qt_meta_stringdata_FrogPilotDriveSummary = { +static const qt_meta_stringdata_StarPilotDriveSummary_t qt_meta_stringdata_StarPilotDriveSummary = { { -QT_MOC_LITERAL(0, 0, 21), // "FrogPilotDriveSummary" +QT_MOC_LITERAL(0, 0, 21), // "StarPilotDriveSummary" QT_MOC_LITERAL(1, 22, 11), // "panelClosed" QT_MOC_LITERAL(2, 34, 0) // "" }, - "FrogPilotDriveSummary\0panelClosed\0" + "StarPilotDriveSummary\0panelClosed\0" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotDriveSummary[] = { +static const uint qt_meta_data_StarPilotDriveSummary[] = { // content: 8, // revision @@ -62,10 +62,10 @@ static const uint qt_meta_data_FrogPilotDriveSummary[] = { 0 // eod }; -void FrogPilotDriveSummary::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotDriveSummary::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->panelClosed(); break; @@ -74,8 +74,8 @@ void FrogPilotDriveSummary::qt_static_metacall(QObject *_o, QMetaObject::Call _c } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotDriveSummary::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotDriveSummary::panelClosed)) { + using _t = void (StarPilotDriveSummary::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotDriveSummary::panelClosed)) { *result = 0; return; } @@ -84,30 +84,30 @@ void FrogPilotDriveSummary::qt_static_metacall(QObject *_o, QMetaObject::Call _c Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotDriveSummary::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotDriveSummary::staticMetaObject = { { &QFrame::staticMetaObject, - qt_meta_stringdata_FrogPilotDriveSummary.data, - qt_meta_data_FrogPilotDriveSummary, + qt_meta_stringdata_StarPilotDriveSummary.data, + qt_meta_data_StarPilotDriveSummary, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotDriveSummary::metaObject() const +const QMetaObject *StarPilotDriveSummary::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotDriveSummary::qt_metacast(const char *_clname) +void *StarPilotDriveSummary::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotDriveSummary.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotDriveSummary.stringdata0)) return static_cast(this); return QFrame::qt_metacast(_clname); } -int FrogPilotDriveSummary::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotDriveSummary::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QFrame::qt_metacall(_c, _id, _a); if (_id < 0) @@ -125,7 +125,7 @@ int FrogPilotDriveSummary::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } // SIGNAL 0 -void FrogPilotDriveSummary::panelClosed() +void StarPilotDriveSummary::panelClosed() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } diff --git a/frogpilot/ui/qt/widgets/moc_navigation_functions.cc b/starpilot/ui/qt/widgets/moc_navigation_functions.cc similarity index 100% rename from frogpilot/ui/qt/widgets/moc_navigation_functions.cc rename to starpilot/ui/qt/widgets/moc_navigation_functions.cc diff --git a/frogpilot/ui/qt/widgets/moc_frogpilot_controls.cc b/starpilot/ui/qt/widgets/moc_starpilot_controls.cc similarity index 64% rename from frogpilot/ui/qt/widgets/moc_frogpilot_controls.cc rename to starpilot/ui/qt/widgets/moc_starpilot_controls.cc index b48e5011..1551ecad 100644 --- a/frogpilot/ui/qt/widgets/moc_frogpilot_controls.cc +++ b/starpilot/ui/qt/widgets/moc_starpilot_controls.cc @@ -1,16 +1,16 @@ /**************************************************************************** -** Meta object code from reading C++ file 'frogpilot_controls.h' +** Meta object code from reading C++ file 'starpilot_controls.h' ** ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8) ** ** WARNING! All changes made in this file will be lost! *****************************************************************************/ -#include "frogpilot_controls.h" +#include "starpilot_controls.h" #include #include #if !defined(Q_MOC_OUTPUT_REVISION) -#error "The header file 'frogpilot_controls.h' doesn't include ." +#error "The header file 'starpilot_controls.h' doesn't include ." #elif Q_MOC_OUTPUT_REVISION != 67 #error "This file was generated using the moc from 5.12.8. It" #error "cannot be used with the include files from this version of Qt." @@ -20,25 +20,25 @@ QT_BEGIN_MOC_NAMESPACE QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED -struct qt_meta_stringdata_FrogPilotConfirmationDialog_t { +struct qt_meta_stringdata_StarPilotConfirmationDialog_t { QByteArrayData data[1]; char stringdata0[28]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotConfirmationDialog_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotConfirmationDialog_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotConfirmationDialog_t qt_meta_stringdata_FrogPilotConfirmationDialog = { +static const qt_meta_stringdata_StarPilotConfirmationDialog_t qt_meta_stringdata_StarPilotConfirmationDialog = { { -QT_MOC_LITERAL(0, 0, 27) // "FrogPilotConfirmationDialog" +QT_MOC_LITERAL(0, 0, 27) // "StarPilotConfirmationDialog" }, - "FrogPilotConfirmationDialog" + "StarPilotConfirmationDialog" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotConfirmationDialog[] = { +static const uint qt_meta_data_StarPilotConfirmationDialog[] = { // content: 8, // revision @@ -54,7 +54,7 @@ static const uint qt_meta_data_FrogPilotConfirmationDialog[] = { 0 // eod }; -void FrogPilotConfirmationDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotConfirmationDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { Q_UNUSED(_o); Q_UNUSED(_id); @@ -62,53 +62,53 @@ void FrogPilotConfirmationDialog::qt_static_metacall(QObject *_o, QMetaObject::C Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotConfirmationDialog::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotConfirmationDialog::staticMetaObject = { { &ConfirmationDialog::staticMetaObject, - qt_meta_stringdata_FrogPilotConfirmationDialog.data, - qt_meta_data_FrogPilotConfirmationDialog, + qt_meta_stringdata_StarPilotConfirmationDialog.data, + qt_meta_data_StarPilotConfirmationDialog, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotConfirmationDialog::metaObject() const +const QMetaObject *StarPilotConfirmationDialog::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotConfirmationDialog::qt_metacast(const char *_clname) +void *StarPilotConfirmationDialog::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotConfirmationDialog.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotConfirmationDialog.stringdata0)) return static_cast(this); return ConfirmationDialog::qt_metacast(_clname); } -int FrogPilotConfirmationDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotConfirmationDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = ConfirmationDialog::qt_metacall(_c, _id, _a); return _id; } -struct qt_meta_stringdata_FrogPilotListWidget_t { +struct qt_meta_stringdata_StarPilotListWidget_t { QByteArrayData data[1]; char stringdata0[20]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotListWidget_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotListWidget_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotListWidget_t qt_meta_stringdata_FrogPilotListWidget = { +static const qt_meta_stringdata_StarPilotListWidget_t qt_meta_stringdata_StarPilotListWidget = { { -QT_MOC_LITERAL(0, 0, 19) // "FrogPilotListWidget" +QT_MOC_LITERAL(0, 0, 19) // "StarPilotListWidget" }, - "FrogPilotListWidget" + "StarPilotListWidget" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotListWidget[] = { +static const uint qt_meta_data_StarPilotListWidget[] = { // content: 8, // revision @@ -124,7 +124,7 @@ static const uint qt_meta_data_FrogPilotListWidget[] = { 0 // eod }; -void FrogPilotListWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotListWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { Q_UNUSED(_o); Q_UNUSED(_id); @@ -132,57 +132,57 @@ void FrogPilotListWidget::qt_static_metacall(QObject *_o, QMetaObject::Call _c, Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotListWidget::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotListWidget::staticMetaObject = { { &QWidget::staticMetaObject, - qt_meta_stringdata_FrogPilotListWidget.data, - qt_meta_data_FrogPilotListWidget, + qt_meta_stringdata_StarPilotListWidget.data, + qt_meta_data_StarPilotListWidget, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotListWidget::metaObject() const +const QMetaObject *StarPilotListWidget::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotListWidget::qt_metacast(const char *_clname) +void *StarPilotListWidget::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotListWidget.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotListWidget.stringdata0)) return static_cast(this); return QWidget::qt_metacast(_clname); } -int FrogPilotListWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotListWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); return _id; } -struct qt_meta_stringdata_FrogPilotButtonControl_t { +struct qt_meta_stringdata_StarPilotButtonControl_t { QByteArrayData data[4]; char stringdata0[41]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotButtonControl_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotButtonControl_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotButtonControl_t qt_meta_stringdata_FrogPilotButtonControl = { +static const qt_meta_stringdata_StarPilotButtonControl_t qt_meta_stringdata_StarPilotButtonControl = { { -QT_MOC_LITERAL(0, 0, 22), // "FrogPilotButtonControl" +QT_MOC_LITERAL(0, 0, 22), // "StarPilotButtonControl" QT_MOC_LITERAL(1, 23, 13), // "buttonClicked" QT_MOC_LITERAL(2, 37, 0), // "" QT_MOC_LITERAL(3, 38, 2) // "id" }, - "FrogPilotButtonControl\0buttonClicked\0" + "StarPilotButtonControl\0buttonClicked\0" "\0id" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotButtonControl[] = { +static const uint qt_meta_data_StarPilotButtonControl[] = { // content: 8, // revision @@ -204,10 +204,10 @@ static const uint qt_meta_data_FrogPilotButtonControl[] = { 0 // eod }; -void FrogPilotButtonControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotButtonControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->buttonClicked((*reinterpret_cast< int(*)>(_a[1]))); break; @@ -216,8 +216,8 @@ void FrogPilotButtonControl::qt_static_metacall(QObject *_o, QMetaObject::Call _ } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotButtonControl::*)(int ); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotButtonControl::buttonClicked)) { + using _t = void (StarPilotButtonControl::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotButtonControl::buttonClicked)) { *result = 0; return; } @@ -225,30 +225,30 @@ void FrogPilotButtonControl::qt_static_metacall(QObject *_o, QMetaObject::Call _ } } -QT_INIT_METAOBJECT const QMetaObject FrogPilotButtonControl::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotButtonControl::staticMetaObject = { { &ParamControl::staticMetaObject, - qt_meta_stringdata_FrogPilotButtonControl.data, - qt_meta_data_FrogPilotButtonControl, + qt_meta_stringdata_StarPilotButtonControl.data, + qt_meta_data_StarPilotButtonControl, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotButtonControl::metaObject() const +const QMetaObject *StarPilotButtonControl::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotButtonControl::qt_metacast(const char *_clname) +void *StarPilotButtonControl::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotButtonControl.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotButtonControl.stringdata0)) return static_cast(this); return ParamControl::qt_metacast(_clname); } -int FrogPilotButtonControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotButtonControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = ParamControl::qt_metacall(_c, _id, _a); if (_id < 0) @@ -266,35 +266,35 @@ int FrogPilotButtonControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a } // SIGNAL 0 -void FrogPilotButtonControl::buttonClicked(int _t1) +void StarPilotButtonControl::buttonClicked(int _t1) { void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)) }; QMetaObject::activate(this, &staticMetaObject, 0, _a); } -struct qt_meta_stringdata_FrogPilotButtonsControl_t { +struct qt_meta_stringdata_StarPilotButtonsControl_t { QByteArrayData data[5]; char stringdata0[64]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotButtonsControl_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotButtonsControl_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotButtonsControl_t qt_meta_stringdata_FrogPilotButtonsControl = { +static const qt_meta_stringdata_StarPilotButtonsControl_t qt_meta_stringdata_StarPilotButtonsControl = { { -QT_MOC_LITERAL(0, 0, 23), // "FrogPilotButtonsControl" +QT_MOC_LITERAL(0, 0, 23), // "StarPilotButtonsControl" QT_MOC_LITERAL(1, 24, 13), // "buttonClicked" QT_MOC_LITERAL(2, 38, 0), // "" QT_MOC_LITERAL(3, 39, 2), // "id" QT_MOC_LITERAL(4, 42, 21) // "disabledButtonClicked" }, - "FrogPilotButtonsControl\0buttonClicked\0" + "StarPilotButtonsControl\0buttonClicked\0" "\0id\0disabledButtonClicked" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotButtonsControl[] = { +static const uint qt_meta_data_StarPilotButtonsControl[] = { // content: 8, // revision @@ -318,10 +318,10 @@ static const uint qt_meta_data_FrogPilotButtonsControl[] = { 0 // eod }; -void FrogPilotButtonsControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotButtonsControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->buttonClicked((*reinterpret_cast< int(*)>(_a[1]))); break; @@ -331,15 +331,15 @@ void FrogPilotButtonsControl::qt_static_metacall(QObject *_o, QMetaObject::Call } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotButtonsControl::*)(int ); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotButtonsControl::buttonClicked)) { + using _t = void (StarPilotButtonsControl::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotButtonsControl::buttonClicked)) { *result = 0; return; } } { - using _t = void (FrogPilotButtonsControl::*)(int ); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotButtonsControl::disabledButtonClicked)) { + using _t = void (StarPilotButtonsControl::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotButtonsControl::disabledButtonClicked)) { *result = 1; return; } @@ -347,30 +347,30 @@ void FrogPilotButtonsControl::qt_static_metacall(QObject *_o, QMetaObject::Call } } -QT_INIT_METAOBJECT const QMetaObject FrogPilotButtonsControl::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotButtonsControl::staticMetaObject = { { &AbstractControl::staticMetaObject, - qt_meta_stringdata_FrogPilotButtonsControl.data, - qt_meta_data_FrogPilotButtonsControl, + qt_meta_stringdata_StarPilotButtonsControl.data, + qt_meta_data_StarPilotButtonsControl, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotButtonsControl::metaObject() const +const QMetaObject *StarPilotButtonsControl::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotButtonsControl::qt_metacast(const char *_clname) +void *StarPilotButtonsControl::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotButtonsControl.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotButtonsControl.stringdata0)) return static_cast(this); return AbstractControl::qt_metacast(_clname); } -int FrogPilotButtonsControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotButtonsControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = AbstractControl::qt_metacall(_c, _id, _a); if (_id < 0) @@ -388,37 +388,37 @@ int FrogPilotButtonsControl::qt_metacall(QMetaObject::Call _c, int _id, void **_ } // SIGNAL 0 -void FrogPilotButtonsControl::buttonClicked(int _t1) +void StarPilotButtonsControl::buttonClicked(int _t1) { void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)) }; QMetaObject::activate(this, &staticMetaObject, 0, _a); } // SIGNAL 1 -void FrogPilotButtonsControl::disabledButtonClicked(int _t1) +void StarPilotButtonsControl::disabledButtonClicked(int _t1) { void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)) }; QMetaObject::activate(this, &staticMetaObject, 1, _a); } -struct qt_meta_stringdata_FrogPilotButtonToggleControl_t { +struct qt_meta_stringdata_StarPilotButtonToggleControl_t { QByteArrayData data[1]; char stringdata0[29]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotButtonToggleControl_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotButtonToggleControl_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotButtonToggleControl_t qt_meta_stringdata_FrogPilotButtonToggleControl = { +static const qt_meta_stringdata_StarPilotButtonToggleControl_t qt_meta_stringdata_StarPilotButtonToggleControl = { { -QT_MOC_LITERAL(0, 0, 28) // "FrogPilotButtonToggleControl" +QT_MOC_LITERAL(0, 0, 28) // "StarPilotButtonToggleControl" }, - "FrogPilotButtonToggleControl" + "StarPilotButtonToggleControl" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotButtonToggleControl[] = { +static const uint qt_meta_data_StarPilotButtonToggleControl[] = { // content: 8, // revision @@ -434,7 +434,7 @@ static const uint qt_meta_data_FrogPilotButtonToggleControl[] = { 0 // eod }; -void FrogPilotButtonToggleControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotButtonToggleControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { Q_UNUSED(_o); Q_UNUSED(_id); @@ -442,56 +442,56 @@ void FrogPilotButtonToggleControl::qt_static_metacall(QObject *_o, QMetaObject:: Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotButtonToggleControl::staticMetaObject = { { - &FrogPilotButtonControl::staticMetaObject, - qt_meta_stringdata_FrogPilotButtonToggleControl.data, - qt_meta_data_FrogPilotButtonToggleControl, +QT_INIT_METAOBJECT const QMetaObject StarPilotButtonToggleControl::staticMetaObject = { { + &StarPilotButtonControl::staticMetaObject, + qt_meta_stringdata_StarPilotButtonToggleControl.data, + qt_meta_data_StarPilotButtonToggleControl, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotButtonToggleControl::metaObject() const +const QMetaObject *StarPilotButtonToggleControl::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotButtonToggleControl::qt_metacast(const char *_clname) +void *StarPilotButtonToggleControl::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotButtonToggleControl.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotButtonToggleControl.stringdata0)) return static_cast(this); - return FrogPilotButtonControl::qt_metacast(_clname); + return StarPilotButtonControl::qt_metacast(_clname); } -int FrogPilotButtonToggleControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotButtonToggleControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotButtonControl::qt_metacall(_c, _id, _a); + _id = StarPilotButtonControl::qt_metacall(_c, _id, _a); return _id; } -struct qt_meta_stringdata_FrogPilotManageControl_t { +struct qt_meta_stringdata_StarPilotManageControl_t { QByteArrayData data[3]; char stringdata0[44]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotManageControl_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotManageControl_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotManageControl_t qt_meta_stringdata_FrogPilotManageControl = { +static const qt_meta_stringdata_StarPilotManageControl_t qt_meta_stringdata_StarPilotManageControl = { { -QT_MOC_LITERAL(0, 0, 22), // "FrogPilotManageControl" +QT_MOC_LITERAL(0, 0, 22), // "StarPilotManageControl" QT_MOC_LITERAL(1, 23, 19), // "manageButtonClicked" QT_MOC_LITERAL(2, 43, 0) // "" }, - "FrogPilotManageControl\0manageButtonClicked\0" + "StarPilotManageControl\0manageButtonClicked\0" "" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotManageControl[] = { +static const uint qt_meta_data_StarPilotManageControl[] = { // content: 8, // revision @@ -513,10 +513,10 @@ static const uint qt_meta_data_FrogPilotManageControl[] = { 0 // eod }; -void FrogPilotManageControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotManageControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->manageButtonClicked(); break; @@ -525,8 +525,8 @@ void FrogPilotManageControl::qt_static_metacall(QObject *_o, QMetaObject::Call _ } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotManageControl::*)(); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotManageControl::manageButtonClicked)) { + using _t = void (StarPilotManageControl::*)(); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotManageControl::manageButtonClicked)) { *result = 0; return; } @@ -535,30 +535,30 @@ void FrogPilotManageControl::qt_static_metacall(QObject *_o, QMetaObject::Call _ Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotManageControl::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotManageControl::staticMetaObject = { { &ParamControl::staticMetaObject, - qt_meta_stringdata_FrogPilotManageControl.data, - qt_meta_data_FrogPilotManageControl, + qt_meta_stringdata_StarPilotManageControl.data, + qt_meta_data_StarPilotManageControl, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotManageControl::metaObject() const +const QMetaObject *StarPilotManageControl::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotManageControl::qt_metacast(const char *_clname) +void *StarPilotManageControl::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotManageControl.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotManageControl.stringdata0)) return static_cast(this); return ParamControl::qt_metacast(_clname); } -int FrogPilotManageControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotManageControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = ParamControl::qt_metacall(_c, _id, _a); if (_id < 0) @@ -576,33 +576,33 @@ int FrogPilotManageControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a } // SIGNAL 0 -void FrogPilotManageControl::manageButtonClicked() +void StarPilotManageControl::manageButtonClicked() { QMetaObject::activate(this, &staticMetaObject, 0, nullptr); } -struct qt_meta_stringdata_FrogPilotParamValueControl_t { +struct qt_meta_stringdata_StarPilotParamValueControl_t { QByteArrayData data[4]; char stringdata0[47]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotParamValueControl_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotParamValueControl_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotParamValueControl_t qt_meta_stringdata_FrogPilotParamValueControl = { +static const qt_meta_stringdata_StarPilotParamValueControl_t qt_meta_stringdata_StarPilotParamValueControl = { { -QT_MOC_LITERAL(0, 0, 26), // "FrogPilotParamValueControl" +QT_MOC_LITERAL(0, 0, 26), // "StarPilotParamValueControl" QT_MOC_LITERAL(1, 27, 12), // "valueChanged" QT_MOC_LITERAL(2, 40, 0), // "" QT_MOC_LITERAL(3, 41, 5) // "value" }, - "FrogPilotParamValueControl\0valueChanged\0" + "StarPilotParamValueControl\0valueChanged\0" "\0value" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotParamValueControl[] = { +static const uint qt_meta_data_StarPilotParamValueControl[] = { // content: 8, // revision @@ -624,10 +624,10 @@ static const uint qt_meta_data_FrogPilotParamValueControl[] = { 0 // eod }; -void FrogPilotParamValueControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotParamValueControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->valueChanged((*reinterpret_cast< float(*)>(_a[1]))); break; @@ -636,8 +636,8 @@ void FrogPilotParamValueControl::qt_static_metacall(QObject *_o, QMetaObject::Ca } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotParamValueControl::*)(float ); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotParamValueControl::valueChanged)) { + using _t = void (StarPilotParamValueControl::*)(float ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotParamValueControl::valueChanged)) { *result = 0; return; } @@ -645,30 +645,30 @@ void FrogPilotParamValueControl::qt_static_metacall(QObject *_o, QMetaObject::Ca } } -QT_INIT_METAOBJECT const QMetaObject FrogPilotParamValueControl::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotParamValueControl::staticMetaObject = { { &AbstractControl::staticMetaObject, - qt_meta_stringdata_FrogPilotParamValueControl.data, - qt_meta_data_FrogPilotParamValueControl, + qt_meta_stringdata_StarPilotParamValueControl.data, + qt_meta_data_StarPilotParamValueControl, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotParamValueControl::metaObject() const +const QMetaObject *StarPilotParamValueControl::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotParamValueControl::qt_metacast(const char *_clname) +void *StarPilotParamValueControl::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotParamValueControl.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotParamValueControl.stringdata0)) return static_cast(this); return AbstractControl::qt_metacast(_clname); } -int FrogPilotParamValueControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotParamValueControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = AbstractControl::qt_metacall(_c, _id, _a); if (_id < 0) @@ -686,34 +686,34 @@ int FrogPilotParamValueControl::qt_metacall(QMetaObject::Call _c, int _id, void } // SIGNAL 0 -void FrogPilotParamValueControl::valueChanged(float _t1) +void StarPilotParamValueControl::valueChanged(float _t1) { void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)) }; QMetaObject::activate(this, &staticMetaObject, 0, _a); } -struct qt_meta_stringdata_FrogPilotParamValueButtonControl_t { +struct qt_meta_stringdata_StarPilotParamValueButtonControl_t { QByteArrayData data[4]; char stringdata0[51]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotParamValueButtonControl_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotParamValueButtonControl_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotParamValueButtonControl_t qt_meta_stringdata_FrogPilotParamValueButtonControl = { +static const qt_meta_stringdata_StarPilotParamValueButtonControl_t qt_meta_stringdata_StarPilotParamValueButtonControl = { { -QT_MOC_LITERAL(0, 0, 32), // "FrogPilotParamValueButtonControl" +QT_MOC_LITERAL(0, 0, 32), // "StarPilotParamValueButtonControl" QT_MOC_LITERAL(1, 33, 13), // "buttonClicked" QT_MOC_LITERAL(2, 47, 0), // "" QT_MOC_LITERAL(3, 48, 2) // "id" }, - "FrogPilotParamValueButtonControl\0" + "StarPilotParamValueButtonControl\0" "buttonClicked\0\0id" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotParamValueButtonControl[] = { +static const uint qt_meta_data_StarPilotParamValueButtonControl[] = { // content: 8, // revision @@ -735,10 +735,10 @@ static const uint qt_meta_data_FrogPilotParamValueButtonControl[] = { 0 // eod }; -void FrogPilotParamValueButtonControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotParamValueButtonControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { if (_c == QMetaObject::InvokeMetaMethod) { - auto *_t = static_cast(_o); + auto *_t = static_cast(_o); Q_UNUSED(_t) switch (_id) { case 0: _t->buttonClicked((*reinterpret_cast< int(*)>(_a[1]))); break; @@ -747,8 +747,8 @@ void FrogPilotParamValueButtonControl::qt_static_metacall(QObject *_o, QMetaObje } else if (_c == QMetaObject::IndexOfMethod) { int *result = reinterpret_cast(_a[0]); { - using _t = void (FrogPilotParamValueButtonControl::*)(int ); - if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&FrogPilotParamValueButtonControl::buttonClicked)) { + using _t = void (StarPilotParamValueButtonControl::*)(int ); + if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&StarPilotParamValueButtonControl::buttonClicked)) { *result = 0; return; } @@ -756,32 +756,32 @@ void FrogPilotParamValueButtonControl::qt_static_metacall(QObject *_o, QMetaObje } } -QT_INIT_METAOBJECT const QMetaObject FrogPilotParamValueButtonControl::staticMetaObject = { { - &FrogPilotParamValueControl::staticMetaObject, - qt_meta_stringdata_FrogPilotParamValueButtonControl.data, - qt_meta_data_FrogPilotParamValueButtonControl, +QT_INIT_METAOBJECT const QMetaObject StarPilotParamValueButtonControl::staticMetaObject = { { + &StarPilotParamValueControl::staticMetaObject, + qt_meta_stringdata_StarPilotParamValueButtonControl.data, + qt_meta_data_StarPilotParamValueButtonControl, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotParamValueButtonControl::metaObject() const +const QMetaObject *StarPilotParamValueButtonControl::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotParamValueButtonControl::qt_metacast(const char *_clname) +void *StarPilotParamValueButtonControl::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotParamValueButtonControl.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotParamValueButtonControl.stringdata0)) return static_cast(this); - return FrogPilotParamValueControl::qt_metacast(_clname); + return StarPilotParamValueControl::qt_metacast(_clname); } -int FrogPilotParamValueButtonControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotParamValueButtonControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { - _id = FrogPilotParamValueControl::qt_metacall(_c, _id, _a); + _id = StarPilotParamValueControl::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { @@ -797,30 +797,30 @@ int FrogPilotParamValueButtonControl::qt_metacall(QMetaObject::Call _c, int _id, } // SIGNAL 0 -void FrogPilotParamValueButtonControl::buttonClicked(int _t1) +void StarPilotParamValueButtonControl::buttonClicked(int _t1) { void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)) }; QMetaObject::activate(this, &staticMetaObject, 0, _a); } -struct qt_meta_stringdata_FrogPilotDualParamValueControl_t { +struct qt_meta_stringdata_StarPilotDualParamValueControl_t { QByteArrayData data[1]; char stringdata0[31]; }; #define QT_MOC_LITERAL(idx, ofs, len) \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ - qptrdiff(offsetof(qt_meta_stringdata_FrogPilotDualParamValueControl_t, stringdata0) + ofs \ + qptrdiff(offsetof(qt_meta_stringdata_StarPilotDualParamValueControl_t, stringdata0) + ofs \ - idx * sizeof(QByteArrayData)) \ ) -static const qt_meta_stringdata_FrogPilotDualParamValueControl_t qt_meta_stringdata_FrogPilotDualParamValueControl = { +static const qt_meta_stringdata_StarPilotDualParamValueControl_t qt_meta_stringdata_StarPilotDualParamValueControl = { { -QT_MOC_LITERAL(0, 0, 30) // "FrogPilotDualParamValueControl" +QT_MOC_LITERAL(0, 0, 30) // "StarPilotDualParamValueControl" }, - "FrogPilotDualParamValueControl" + "StarPilotDualParamValueControl" }; #undef QT_MOC_LITERAL -static const uint qt_meta_data_FrogPilotDualParamValueControl[] = { +static const uint qt_meta_data_StarPilotDualParamValueControl[] = { // content: 8, // revision @@ -836,7 +836,7 @@ static const uint qt_meta_data_FrogPilotDualParamValueControl[] = { 0 // eod }; -void FrogPilotDualParamValueControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +void StarPilotDualParamValueControl::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) { Q_UNUSED(_o); Q_UNUSED(_id); @@ -844,30 +844,30 @@ void FrogPilotDualParamValueControl::qt_static_metacall(QObject *_o, QMetaObject Q_UNUSED(_a); } -QT_INIT_METAOBJECT const QMetaObject FrogPilotDualParamValueControl::staticMetaObject = { { +QT_INIT_METAOBJECT const QMetaObject StarPilotDualParamValueControl::staticMetaObject = { { &QFrame::staticMetaObject, - qt_meta_stringdata_FrogPilotDualParamValueControl.data, - qt_meta_data_FrogPilotDualParamValueControl, + qt_meta_stringdata_StarPilotDualParamValueControl.data, + qt_meta_data_StarPilotDualParamValueControl, qt_static_metacall, nullptr, nullptr } }; -const QMetaObject *FrogPilotDualParamValueControl::metaObject() const +const QMetaObject *StarPilotDualParamValueControl::metaObject() const { return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; } -void *FrogPilotDualParamValueControl::qt_metacast(const char *_clname) +void *StarPilotDualParamValueControl::qt_metacast(const char *_clname) { if (!_clname) return nullptr; - if (!strcmp(_clname, qt_meta_stringdata_FrogPilotDualParamValueControl.stringdata0)) + if (!strcmp(_clname, qt_meta_stringdata_StarPilotDualParamValueControl.stringdata0)) return static_cast(this); return QFrame::qt_metacast(_clname); } -int FrogPilotDualParamValueControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +int StarPilotDualParamValueControl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QFrame::qt_metacall(_c, _id, _a); return _id; diff --git a/frogpilot/ui/qt/widgets/navigation_functions.cc b/starpilot/ui/qt/widgets/navigation_functions.cc similarity index 97% rename from frogpilot/ui/qt/widgets/navigation_functions.cc rename to starpilot/ui/qt/widgets/navigation_functions.cc index c4252f95..e1744e81 100644 --- a/frogpilot/ui/qt/widgets/navigation_functions.cc +++ b/starpilot/ui/qt/widgets/navigation_functions.cc @@ -1,4 +1,4 @@ -#include "frogpilot/ui/qt/widgets/navigation_functions.h" +#include "starpilot/ui/qt/widgets/navigation_functions.h" MapSelectionControl::MapSelectionControl(const QMap &map, bool isCountry) : selectionType(isCountry ? "nations" : "states") { mapButtons = new QButtonGroup(this); diff --git a/frogpilot/ui/qt/widgets/navigation_functions.h b/starpilot/ui/qt/widgets/navigation_functions.h similarity index 99% rename from frogpilot/ui/qt/widgets/navigation_functions.h rename to starpilot/ui/qt/widgets/navigation_functions.h index ccd28f51..8cfad8e2 100644 --- a/frogpilot/ui/qt/widgets/navigation_functions.h +++ b/starpilot/ui/qt/widgets/navigation_functions.h @@ -4,7 +4,7 @@ #include #include -#include "frogpilot/ui/qt/widgets/frogpilot_controls.h" +#include "starpilot/ui/qt/widgets/starpilot_controls.h" inline QMap midwestMap = { {"IL", "Illinois"}, {"IN", "Indiana"}, {"IA", "Iowa"}, diff --git a/frogpilot/ui/qt/widgets/frogpilot_controls.cc b/starpilot/ui/qt/widgets/starpilot_controls.cc similarity index 92% rename from frogpilot/ui/qt/widgets/frogpilot_controls.cc rename to starpilot/ui/qt/widgets/starpilot_controls.cc index aa0a7ef8..c02e645d 100644 --- a/frogpilot/ui/qt/widgets/frogpilot_controls.cc +++ b/starpilot/ui/qt/widgets/starpilot_controls.cc @@ -1,13 +1,13 @@ #include "selfdrive/ui/ui.h" -#include "frogpilot/ui/frogpilot_ui.h" +#include "starpilot/ui/starpilot_ui.h" -bool FrogPilotConfirmationDialog::toggleReboot(QWidget *parent) { +bool StarPilotConfirmationDialog::toggleReboot(QWidget *parent) { ConfirmationDialog d(tr("Reboot required to take effect."), tr("Reboot Now"), tr("Reboot Later"), false, parent); return d.exec(); } -bool FrogPilotConfirmationDialog::yesorno(const QString &prompt_text, QWidget *parent) { +bool StarPilotConfirmationDialog::yesorno(const QString &prompt_text, QWidget *parent) { ConfirmationDialog d(prompt_text, tr("Yes"), tr("No"), false, parent); return d.exec(); } @@ -123,9 +123,9 @@ void openDescriptions(bool forceOpenDescriptions, std::map &movie, const QSize &size, QWidget *parent); void loadImage(const QString &basePath, QPixmap &pixmap, QSharedPointer &movie, const QSize &size, QWidget *parent); void openDescriptions(bool forceOpenDescriptions, std::map toggles); -void updateFrogPilotToggles(); +void updateStarPilotToggles(); QString cleanModelName(QString modelName); @@ -46,20 +46,20 @@ const QString buttonStyle = R"( } )"; -class FrogPilotConfirmationDialog : public ConfirmationDialog { +class StarPilotConfirmationDialog : public ConfirmationDialog { Q_OBJECT public: - explicit FrogPilotConfirmationDialog(const QString &prompt_text, const QString &confirm_text, + explicit StarPilotConfirmationDialog(const QString &prompt_text, const QString &confirm_text, const QString &cancel_text, const bool rich, QWidget *parent); static bool toggleReboot(QWidget *parent); static bool yesorno(const QString &prompt_text, QWidget *parent); }; -class FrogPilotListWidget : public QWidget { +class StarPilotListWidget : public QWidget { Q_OBJECT public: - explicit FrogPilotListWidget(QWidget *parent = 0) : QWidget(parent), outer_layout(this) { + explicit StarPilotListWidget(QWidget *parent = 0) : QWidget(parent), outer_layout(this) { outer_layout.setMargin(0); outer_layout.setSpacing(0); outer_layout.addLayout(&inner_layout); @@ -114,10 +114,10 @@ private: QVBoxLayout inner_layout; }; -class FrogPilotButtonControl : public ParamControl { +class StarPilotButtonControl : public ParamControl { Q_OBJECT public: - FrogPilotButtonControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, + StarPilotButtonControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, const std::vector &button_texts, bool checkable = false, bool exclusive = false, int minimum_button_width = 225) : ParamControl(param, title, desc, icon) { key = param.toStdString(); @@ -139,7 +139,7 @@ public: emit buttonClicked(id); }); - QObject::connect(this, &ToggleControl::toggleFlipped, this, &FrogPilotButtonControl::refresh); + QObject::connect(this, &ToggleControl::toggleFlipped, this, &StarPilotButtonControl::refresh); refresh(); } @@ -196,10 +196,10 @@ protected: QButtonGroup *button_group; }; -class FrogPilotButtonsControl : public AbstractControl { +class StarPilotButtonsControl : public AbstractControl { Q_OBJECT public: - FrogPilotButtonsControl(const QString &title, const QString &desc, const QString &icon, + StarPilotButtonsControl(const QString &title, const QString &desc, const QString &icon, const std::vector &button_texts, const bool &checkable = false, const bool &exclusive = true, const int minimum_button_width = 225) : AbstractControl(title, desc, icon) { button_group = new QButtonGroup(this); @@ -280,13 +280,13 @@ private: QButtonGroup *button_group; }; -class FrogPilotButtonToggleControl : public FrogPilotButtonControl { +class StarPilotButtonToggleControl : public StarPilotButtonControl { Q_OBJECT public: - FrogPilotButtonToggleControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, + StarPilotButtonToggleControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, const std::vector &button_params, const std::vector &button_texts, bool exclusive = false, int minimum_button_width = 225) - : FrogPilotButtonControl(param, title, desc, icon, button_texts, true, exclusive, minimum_button_width), button_params(button_params) { + : StarPilotButtonControl(param, title, desc, icon, button_texts, true, exclusive, minimum_button_width), button_params(button_params) { for (int i = 0; i < button_texts.size(); i++) { button_group->buttons()[i]->setChecked(params.getBool(button_params[i].toStdString())); @@ -299,7 +299,7 @@ public: } void refresh() override { - FrogPilotButtonControl::refresh(); + StarPilotButtonControl::refresh(); for (int i = 0; i < button_group->buttons().size(); i++) { QAbstractButton *button = button_group->button(i); @@ -311,18 +311,18 @@ private: std::vector button_params; }; -class FrogPilotManageControl : public ParamControl { +class StarPilotManageControl : public ParamControl { Q_OBJECT public: - FrogPilotManageControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon) : ParamControl(param, title, desc, icon) { + StarPilotManageControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon) : ParamControl(param, title, desc, icon) { key = param.toStdString(); manageButton = new ButtonControl("", tr("MANAGE"), "", this); hlayout->insertWidget(hlayout->indexOf(&toggle) - 1, manageButton); - QObject::connect(manageButton, &ButtonControl::clicked, this, &FrogPilotManageControl::manageButtonClicked); - QObject::connect(this, &ToggleControl::toggleFlipped, this, &FrogPilotManageControl::refresh); + QObject::connect(manageButton, &ButtonControl::clicked, this, &StarPilotManageControl::manageButtonClicked); + QObject::connect(this, &ToggleControl::toggleFlipped, this, &StarPilotManageControl::refresh); } void refresh() { @@ -349,10 +349,10 @@ private: Params params; }; -class FrogPilotParamValueControl : public AbstractControl { +class StarPilotParamValueControl : public AbstractControl { Q_OBJECT public: - FrogPilotParamValueControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, + StarPilotParamValueControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, float min_value, float max_value, const QString &label, const std::map &value_labels = {}, float interval = 1.0f, bool fast_increase = false, int label_width = 350) : AbstractControl(title, desc, icon), @@ -373,8 +373,8 @@ public: hlayout->addWidget(&decrement_button); hlayout->addWidget(&increment_button); - QObject::connect(&decrement_button, &QPushButton::pressed, this, &FrogPilotParamValueControl::decrementPressed); - QObject::connect(&increment_button, &QPushButton::pressed, this, &FrogPilotParamValueControl::incrementPressed); + QObject::connect(&decrement_button, &QPushButton::pressed, this, &StarPilotParamValueControl::decrementPressed); + QObject::connect(&increment_button, &QPushButton::pressed, this, &StarPilotParamValueControl::incrementPressed); last_action_timer.start(); } @@ -551,14 +551,14 @@ private: QString warning; }; -class FrogPilotParamValueButtonControl : public FrogPilotParamValueControl { +class StarPilotParamValueButtonControl : public StarPilotParamValueControl { Q_OBJECT public: - FrogPilotParamValueButtonControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, + StarPilotParamValueButtonControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, float min_value, float max_value, const QString &label, const std::map &value_labels, float interval, bool fast_increase, const std::vector &button_params, const std::vector &button_texts, bool left_button = false, bool checkable = true, int minimum_button_width = 225) - : FrogPilotParamValueControl(param, title, desc, icon, min_value, max_value, label, value_labels, interval, fast_increase, 200), + : StarPilotParamValueControl(param, title, desc, icon, min_value, max_value, label, value_labels, interval, fast_increase, 200), button_params(button_params), checkable(checkable) { button_group = new QButtonGroup(this); button_group->setExclusive(false); @@ -591,12 +591,12 @@ public: button->setChecked(params.getBool(button_params[i].toStdString())); } } - FrogPilotParamValueControl::refresh(); + StarPilotParamValueControl::refresh(); } void showEvent(QShowEvent *event) override { refresh(); - FrogPilotParamValueControl::showEvent(event); + StarPilotParamValueControl::showEvent(event); } public: @@ -619,10 +619,10 @@ private: QButtonGroup *button_group; }; -class FrogPilotDualParamValueControl : public QFrame { +class StarPilotDualParamValueControl : public QFrame { Q_OBJECT public: - FrogPilotDualParamValueControl(FrogPilotParamValueControl *control1, FrogPilotParamValueControl *control2, QWidget *parent = nullptr) : QFrame(parent), control1(control1), control2(control2) { + StarPilotDualParamValueControl(StarPilotParamValueControl *control1, StarPilotParamValueControl *control2, QWidget *parent = nullptr) : QFrame(parent), control1(control1), control2(control2) { QHBoxLayout *hlayout = new QHBoxLayout(this); hlayout->addWidget(control1); hlayout->addWidget(control2); @@ -639,6 +639,6 @@ public: } private: - FrogPilotParamValueControl *control1; - FrogPilotParamValueControl *control2; + StarPilotParamValueControl *control1; + StarPilotParamValueControl *control2; }; diff --git a/frogpilot/ui/screenrecorder/blocking_queue.h b/starpilot/ui/screenrecorder/blocking_queue.h similarity index 100% rename from frogpilot/ui/screenrecorder/blocking_queue.h rename to starpilot/ui/screenrecorder/blocking_queue.h diff --git a/frogpilot/ui/screenrecorder/moc_screenrecorder.cc b/starpilot/ui/screenrecorder/moc_screenrecorder.cc similarity index 100% rename from frogpilot/ui/screenrecorder/moc_screenrecorder.cc rename to starpilot/ui/screenrecorder/moc_screenrecorder.cc diff --git a/frogpilot/ui/screenrecorder/omx_encoder.cc b/starpilot/ui/screenrecorder/omx_encoder.cc similarity index 99% rename from frogpilot/ui/screenrecorder/omx_encoder.cc rename to starpilot/ui/screenrecorder/omx_encoder.cc index 21139186..b0222cc8 100644 --- a/frogpilot/ui/screenrecorder/omx_encoder.cc +++ b/starpilot/ui/screenrecorder/omx_encoder.cc @@ -1,4 +1,4 @@ -#include "frogpilot/ui/screenrecorder/omx_encoder.h" +#include "starpilot/ui/screenrecorder/omx_encoder.h" #if defined(QCOM2) && !defined(__APPLE__) diff --git a/frogpilot/ui/screenrecorder/omx_encoder.h b/starpilot/ui/screenrecorder/omx_encoder.h similarity index 100% rename from frogpilot/ui/screenrecorder/omx_encoder.h rename to starpilot/ui/screenrecorder/omx_encoder.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_Audio.h b/starpilot/ui/screenrecorder/openmax/include/OMX_Audio.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_Audio.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_Audio.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_Component.h b/starpilot/ui/screenrecorder/openmax/include/OMX_Component.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_Component.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_Component.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_ContentPipe.h b/starpilot/ui/screenrecorder/openmax/include/OMX_ContentPipe.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_ContentPipe.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_ContentPipe.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_Core.h b/starpilot/ui/screenrecorder/openmax/include/OMX_Core.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_Core.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_Core.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_CoreExt.h b/starpilot/ui/screenrecorder/openmax/include/OMX_CoreExt.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_CoreExt.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_CoreExt.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_IVCommon.h b/starpilot/ui/screenrecorder/openmax/include/OMX_IVCommon.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_IVCommon.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_IVCommon.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_Image.h b/starpilot/ui/screenrecorder/openmax/include/OMX_Image.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_Image.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_Image.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_Index.h b/starpilot/ui/screenrecorder/openmax/include/OMX_Index.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_Index.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_Index.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_IndexExt.h b/starpilot/ui/screenrecorder/openmax/include/OMX_IndexExt.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_IndexExt.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_IndexExt.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_Other.h b/starpilot/ui/screenrecorder/openmax/include/OMX_Other.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_Other.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_Other.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_QCOMExtns.h b/starpilot/ui/screenrecorder/openmax/include/OMX_QCOMExtns.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_QCOMExtns.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_QCOMExtns.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_Skype_VideoExtensions.h b/starpilot/ui/screenrecorder/openmax/include/OMX_Skype_VideoExtensions.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_Skype_VideoExtensions.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_Skype_VideoExtensions.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_Types.h b/starpilot/ui/screenrecorder/openmax/include/OMX_Types.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_Types.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_Types.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_Video.h b/starpilot/ui/screenrecorder/openmax/include/OMX_Video.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_Video.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_Video.h diff --git a/frogpilot/ui/screenrecorder/openmax/include/OMX_VideoExt.h b/starpilot/ui/screenrecorder/openmax/include/OMX_VideoExt.h similarity index 100% rename from frogpilot/ui/screenrecorder/openmax/include/OMX_VideoExt.h rename to starpilot/ui/screenrecorder/openmax/include/OMX_VideoExt.h diff --git a/frogpilot/ui/screenrecorder/screenrecorder.cc b/starpilot/ui/screenrecorder/screenrecorder.cc similarity index 98% rename from frogpilot/ui/screenrecorder/screenrecorder.cc rename to starpilot/ui/screenrecorder/screenrecorder.cc index b062bf9e..5a47698c 100644 --- a/frogpilot/ui/screenrecorder/screenrecorder.cc +++ b/starpilot/ui/screenrecorder/screenrecorder.cc @@ -2,7 +2,7 @@ #include "selfdrive/ui/qt/util.h" -#include "frogpilot/ui/screenrecorder/screenrecorder.h" +#include "starpilot/ui/screenrecorder/screenrecorder.h" constexpr int BITRATE = 8 * 1024 * 1024; constexpr int MAX_DURATION = 1000 * 60 * 5; diff --git a/frogpilot/ui/screenrecorder/screenrecorder.h b/starpilot/ui/screenrecorder/screenrecorder.h similarity index 100% rename from frogpilot/ui/screenrecorder/screenrecorder.h rename to starpilot/ui/screenrecorder/screenrecorder.h diff --git a/frogpilot/ui/frogpilot_ui.cc b/starpilot/ui/starpilot_ui.cc similarity index 52% rename from frogpilot/ui/frogpilot_ui.cc rename to starpilot/ui/starpilot_ui.cc index 912713fb..65a2218a 100644 --- a/frogpilot/ui/frogpilot_ui.cc +++ b/starpilot/ui/starpilot_ui.cc @@ -1,12 +1,12 @@ -#include "frogpilot/ui/frogpilot_ui.h" +#include "starpilot/ui/starpilot_ui.h" #include #include #include "system/hardware/hw.h" -static void update_state(FrogPilotUIState *fs) { - FrogPilotUIScene &frogpilot_scene = fs->frogpilot_scene; +static void update_state(StarPilotUIState *fs) { + StarPilotUIScene &starpilot_scene = fs->starpilot_scene; SubMaster &fpsm = *(fs->sm); fpsm.update(0); @@ -14,54 +14,54 @@ static void update_state(FrogPilotUIState *fs) { const char *desktop_fake_wifi_env = std::getenv("SP_ALLOW_DESKTOP_FAKE_WIFI"); const bool desktop_force_online = Hardware::PC() && desktop_fake_wifi_env != nullptr && std::string(desktop_fake_wifi_env) != "0"; if (desktop_force_online) { - frogpilot_scene.online = true; + starpilot_scene.online = true; } if (fpsm.updated("deviceState")) { const cereal::DeviceState::Reader &deviceState = fpsm["deviceState"].getDeviceState(); if (!desktop_force_online) { - frogpilot_scene.online = deviceState.getNetworkType() != cereal::DeviceState::NetworkType::NONE; + starpilot_scene.online = deviceState.getNetworkType() != cereal::DeviceState::NetworkType::NONE; } } - if (fpsm.updated("frogpilotCarState")) { - const cereal::FrogPilotCarState::Reader &frogpilotCarState = fpsm["frogpilotCarState"].getFrogpilotCarState(); - frogpilot_scene.always_on_lateral_active = !frogpilot_scene.enabled && frogpilotCarState.getAlwaysOnLateralEnabled(); - frogpilot_scene.traffic_mode_enabled = frogpilotCarState.getTrafficModeEnabled(); + if (fpsm.updated("starpilotCarState")) { + const cereal::StarPilotCarState::Reader &starpilotCarState = fpsm["starpilotCarState"].getStarpilotCarState(); + starpilot_scene.always_on_lateral_active = !starpilot_scene.enabled && starpilotCarState.getAlwaysOnLateralEnabled(); + starpilot_scene.traffic_mode_enabled = starpilotCarState.getTrafficModeEnabled(); } - if (fpsm.updated("frogpilotPlan")) { - const cereal::FrogPilotPlan::Reader &frogpilotPlan = fpsm["frogpilotPlan"].getFrogpilotPlan(); - if (frogpilotPlan.getThemeUpdated()) { + if (fpsm.updated("starpilotPlan")) { + const cereal::StarPilotPlan::Reader &starpilotPlan = fpsm["starpilotPlan"].getStarpilotPlan(); + if (starpilotPlan.getThemeUpdated()) { emit fs->themeUpdated(); } - capnp::Text::Reader toggles = frogpilotPlan.getFrogpilotToggles(); + capnp::Text::Reader toggles = starpilotPlan.getStarpilotToggles(); QByteArray current_toggles(toggles.cStr(), toggles.size()); static QByteArray previous_toggles; if (previous_toggles != current_toggles) { - frogpilot_scene.frogpilot_toggles = QJsonDocument::fromJson(current_toggles).object(); + starpilot_scene.starpilot_toggles = QJsonDocument::fromJson(current_toggles).object(); previous_toggles = current_toggles; } } // Keep force drive-state toggles authoritative from params so UI state - // switches immediately even if frogpilotPlan is delayed. - frogpilot_scene.frogpilot_toggles["force_offroad"] = fs->params.getBool("ForceOffroad"); - frogpilot_scene.frogpilot_toggles["force_onroad"] = fs->params.getBool("ForceOnroad"); + // switches immediately even if starpilotPlan is delayed. + starpilot_scene.starpilot_toggles["force_offroad"] = fs->params.getBool("ForceOffroad"); + starpilot_scene.starpilot_toggles["force_onroad"] = fs->params.getBool("ForceOnroad"); if (fpsm.updated("selfdriveState")) { const cereal::SelfdriveState::Reader &selfdriveState = fpsm["selfdriveState"].getSelfdriveState(); - frogpilot_scene.enabled = selfdriveState.getEnabled(); + starpilot_scene.enabled = selfdriveState.getEnabled(); } } -FrogPilotUIState::FrogPilotUIState(QObject *parent) : QObject(parent) { +StarPilotUIState::StarPilotUIState(QObject *parent) : QObject(parent) { sm = std::make_unique>({ - "carControl", "deviceState", "frogpilotCarState", "frogpilotDeviceState", - "frogpilotPlan", "frogpilotRadarState", "frogpilotSelfdriveState", "liveDelay", + "carControl", "deviceState", "starpilotCarState", "starpilotDeviceState", + "starpilotPlan", "starpilotRadarState", "starpilotSelfdriveState", "liveDelay", "liveParameters", "liveTorqueParameters", "liveTracks", "mapdExtendedOut", "mapdOut", "selfdriveState" }); - // Provide sane local defaults until frogpilotPlan publishes real toggles. - frogpilot_scene.frogpilot_toggles = { + // Provide sane local defaults until starpilotPlan publishes real toggles. + starpilot_scene.starpilot_toggles = { {"debug_mode", false}, {"driver_camera_in_reverse", false}, {"force_offroad", false}, @@ -84,14 +84,14 @@ FrogPilotUIState::FrogPilotUIState(QObject *parent) : QObject(parent) { } } -FrogPilotUIState *frogpilotUIState() { - static FrogPilotUIState frogpilot_ui_state; - return &frogpilot_ui_state; +StarPilotUIState *starpilotUIState() { + static StarPilotUIState starpilot_ui_state; + return &starpilot_ui_state; } -void FrogPilotUIState::update() { +void StarPilotUIState::update() { update_state(this); - frogpilot_scene.conditional_status = frogpilot_scene.enabled ? params_memory.getInt("CEStatus") : 0; - frogpilot_scene.driver_camera_timer = frogpilot_scene.reverse && frogpilot_scene.frogpilot_toggles.value("driver_camera_in_reverse").toBool() ? frogpilot_scene.driver_camera_timer + 1 : 0; + starpilot_scene.conditional_status = starpilot_scene.enabled ? params_memory.getInt("CEStatus") : 0; + starpilot_scene.driver_camera_timer = starpilot_scene.reverse && starpilot_scene.starpilot_toggles.value("driver_camera_in_reverse").toBool() ? starpilot_scene.driver_camera_timer + 1 : 0; } diff --git a/frogpilot/ui/frogpilot_ui.h b/starpilot/ui/starpilot_ui.h similarity index 64% rename from frogpilot/ui/frogpilot_ui.h rename to starpilot/ui/starpilot_ui.h index 9eeb5316..84461240 100644 --- a/frogpilot/ui/frogpilot_ui.h +++ b/starpilot/ui/starpilot_ui.h @@ -3,13 +3,13 @@ #include "cereal/messaging/messaging.h" #include "selfdrive/ui/qt/network/wifi_manager.h" -#include "frogpilot/ui/qt/widgets/frogpilot_controls.h" +#include "starpilot/ui/qt/widgets/starpilot_controls.h" -struct FrogPilotUIScene { +struct StarPilotUIScene { bool always_on_lateral_active; bool downloading_update; bool enabled; - bool frogpilot_panel_active; + bool starpilot_panel_active; bool online; bool parked; bool reverse; @@ -22,20 +22,20 @@ struct FrogPilotUIScene { int driver_camera_timer; int started_timer; - QJsonObject frogpilot_toggles; + QJsonObject starpilot_toggles; }; -class FrogPilotUIState : public QObject { +class StarPilotUIState : public QObject { Q_OBJECT public: - explicit FrogPilotUIState(QObject *parent = nullptr); + explicit StarPilotUIState(QObject *parent = nullptr); void update(); std::unique_ptr sm; - FrogPilotUIScene frogpilot_scene; + StarPilotUIScene starpilot_scene; Params params; Params params_memory{"", true}; @@ -46,4 +46,4 @@ signals: void themeUpdated(); }; -FrogPilotUIState *frogpilotUIState(); +StarPilotUIState *starpilotUIState(); diff --git a/system/athena/athenad.py b/system/athena/athenad.py index a74ede13..9b5f5dcb 100755 --- a/system/athena/athenad.py +++ b/system/athena/athenad.py @@ -40,7 +40,7 @@ from openpilot.common.swaglog import cloudlog from openpilot.system.version import get_build_metadata from openpilot.system.hardware.hw import Paths -from openpilot.frogpilot.common.frogpilot_utilities import use_konik_server +from openpilot.starpilot.common.starpilot_utilities import use_konik_server ATHENA_HOST = os.getenv('ATHENA_HOST', f"wss://athena.{'konik.ai' if use_konik_server() else 'comma.ai'}") diff --git a/system/camerad/camerad b/system/camerad/camerad index 956a56ca..6a2b4012 100755 Binary files a/system/camerad/camerad and b/system/camerad/camerad differ diff --git a/system/hardware/hardwared.py b/system/hardware/hardwared.py index 7c5cf1f4..a2d0f45a 100644 --- a/system/hardware/hardwared.py +++ b/system/hardware/hardwared.py @@ -26,7 +26,7 @@ from openpilot.system.hardware.fan_controller import TiciFanController from openpilot.system.version import terms_version, training_version from openpilot.system.athena.registration import UNREGISTERED_DONGLE_ID -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_variables import get_starpilot_toggles ThermalStatus = log.DeviceState.ThermalStatus NetworkType = log.DeviceState.NetworkType @@ -214,11 +214,11 @@ def hardware_thread(end_event, hw_queue) -> None: fan_controller = None - # FrogPilot variables - sm = sm.extend(['frogpilotPlan']) - pm = pm.extend(['frogpilotDeviceState']) + # StarPilot variables + sm = sm.extend(['starpilotPlan']) + pm = pm.extend(['starpilotDeviceState']) - frogpilot_toggles = get_frogpilot_toggles() + starpilot_toggles = get_starpilot_toggles() while not end_event.is_set(): sm.update(PANDA_STATES_TIMEOUT) @@ -300,8 +300,8 @@ def hardware_thread(end_event, hw_queue) -> None: if fan_controller is not None: msg.deviceState.fanSpeedPercentDesired = fan_controller.update(all_comp_temp, onroad_conditions["ignition"]) - # FrogPilot variables - if frogpilot_toggles.increase_thermal_limits: + # StarPilot variables + if starpilot_toggles.increase_thermal_limits: all_comp_temp -= (THERMAL_BANDS[ThermalStatus.danger].min_temp - THERMAL_BANDS[ThermalStatus.red].min_temp) is_offroad_for_5_min = (started_ts is None) and ((not started_seen) or (off_ts is None) or (time.monotonic() - off_ts > 60 * 5)) @@ -353,9 +353,9 @@ def hardware_thread(end_event, hw_queue) -> None: if started_ts is None: should_start = should_start and all(startup_conditions.values()) - # FrogPilot variables - should_start |= frogpilot_toggles.force_onroad - should_start &= not frogpilot_toggles.force_offroad + # StarPilot variables + should_start |= starpilot_toggles.force_onroad + should_start &= not starpilot_toggles.force_offroad if should_start != should_start_prev or (count == 0): params.put_bool("IsEngaged", False) @@ -412,7 +412,7 @@ def hardware_thread(end_event, hw_queue) -> None: msg.deviceState.somPowerDrawW = som_power_draw # Check if we need to shut down - if power_monitor.should_shutdown(onroad_conditions["ignition"], in_car, off_ts, started_seen, frogpilot_toggles): + if power_monitor.should_shutdown(onroad_conditions["ignition"], in_car, off_ts, started_seen, starpilot_toggles): cloudlog.warning(f"shutting device down, offroad since {off_ts}") params.put_bool("DoShutdown", True) @@ -426,13 +426,13 @@ def hardware_thread(end_event, hw_queue) -> None: msg.deviceState.thermalStatus = thermal_status pm.send("deviceState", msg) - # FrogPilot variables - fpmsg = messaging.new_message('frogpilotDeviceState') + # StarPilot variables + fpmsg = messaging.new_message('starpilotDeviceState') - fpmsg.frogpilotDeviceState.freeSpace = round(get_available_bytes(default=32.0 * (2 ** 30)) / (2 ** 30)) - fpmsg.frogpilotDeviceState.usedSpace = round(get_used_bytes(default=0.0) / (2 ** 30)) + fpmsg.starpilotDeviceState.freeSpace = round(get_available_bytes(default=32.0 * (2 ** 30)) / (2 ** 30)) + fpmsg.starpilotDeviceState.usedSpace = round(get_used_bytes(default=0.0) / (2 ** 30)) - pm.send("frogpilotDeviceState", fpmsg) + pm.send("starpilotDeviceState", fpmsg) # Log to statsd statlog.gauge("free_space_percent", msg.deviceState.freeSpacePercent) @@ -487,8 +487,8 @@ def hardware_thread(end_event, hw_queue) -> None: count += 1 should_start_prev = should_start - # FrogPilot variables - frogpilot_toggles = get_frogpilot_toggles(sm) + # StarPilot variables + starpilot_toggles = get_starpilot_toggles(sm) def main(): diff --git a/system/hardware/hw.h b/system/hardware/hw.h index 1154a7ea..f15e2444 100644 --- a/system/hardware/hw.h +++ b/system/hardware/hw.h @@ -32,7 +32,7 @@ namespace Path { return Path::comma_home() + "/media/0/realdata"; } - // FrogPilot variables + // StarPilot variables if (std::filesystem::exists("/cache/use_HD")) { return "/data/media/0/realdata_HD/"; } diff --git a/system/hardware/power_monitoring.py b/system/hardware/power_monitoring.py index 8d500cf0..76f29d59 100644 --- a/system/hardware/power_monitoring.py +++ b/system/hardware/power_monitoring.py @@ -107,16 +107,16 @@ class PowerMonitoring: return int(self.car_battery_capacity_uWh) # See if we need to shutdown - def should_shutdown(self, ignition: bool, in_car: bool, offroad_timestamp: float | None, started_seen: bool, frogpilot_toggles: SimpleNamespace): + def should_shutdown(self, ignition: bool, in_car: bool, offroad_timestamp: float | None, started_seen: bool, starpilot_toggles: SimpleNamespace): if offroad_timestamp is None: return False now = time.monotonic() should_shutdown = False offroad_time = (now - offroad_timestamp) - low_voltage_shutdown = (self.car_voltage_mV < (frogpilot_toggles.low_voltage_shutdown * 1e3) and + low_voltage_shutdown = (self.car_voltage_mV < (starpilot_toggles.low_voltage_shutdown * 1e3) and offroad_time > VOLTAGE_SHUTDOWN_MIN_OFFROAD_TIME_S) - should_shutdown |= offroad_time > frogpilot_toggles.device_shutdown_time + should_shutdown |= offroad_time > starpilot_toggles.device_shutdown_time should_shutdown |= low_voltage_shutdown should_shutdown |= (self.car_battery_capacity_uWh <= 0) should_shutdown &= not ignition diff --git a/system/hardware/tici/updater b/system/hardware/tici/updater index f19a6a75..aa75bb08 100755 --- a/system/hardware/tici/updater +++ b/system/hardware/tici/updater @@ -18,7 +18,7 @@ fi # Ensure AGNOS python can import openpilot modules when called directly. REPO_ROOT="$(cd "$DIR/../../.." >/dev/null 2>&1 && pwd)" if [[ -d "$REPO_ROOT" ]]; then - export PYTHONPATH="$REPO_ROOT/frogpilot/third_party:$REPO_ROOT${PYTHONPATH:+:$PYTHONPATH}" + export PYTHONPATH="$REPO_ROOT/starpilot/third_party:$REPO_ROOT${PYTHONPATH:+:$PYTHONPATH}" fi run_headless_swap() { diff --git a/system/loggerd/bootlog b/system/loggerd/bootlog index 69890e08..9297d6d6 100755 Binary files a/system/loggerd/bootlog and b/system/loggerd/bootlog differ diff --git a/system/loggerd/config.py b/system/loggerd/config.py index bd25cd31..39f5f0dd 100644 --- a/system/loggerd/config.py +++ b/system/loggerd/config.py @@ -29,7 +29,7 @@ def get_available_bytes(default: int) -> int: return available_bytes -# FrogPilot variables +# StarPilot variables def get_used_bytes(default: int) -> int: try: statvfs = os.statvfs(Paths.log_root()) diff --git a/system/loggerd/encoderd b/system/loggerd/encoderd index 92411a51..967ba701 100755 Binary files a/system/loggerd/encoderd and b/system/loggerd/encoderd differ diff --git a/system/loggerd/loggerd b/system/loggerd/loggerd index 0187bc55..223efe7e 100755 Binary files a/system/loggerd/loggerd and b/system/loggerd/loggerd differ diff --git a/system/manager/manager.py b/system/manager/manager.py index 4702d1a3..06a2865f 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -2,6 +2,7 @@ import datetime import json import os +import shutil from pathlib import Path import signal import sys @@ -23,16 +24,24 @@ from openpilot.common.swaglog import cloudlog, add_file_handler from openpilot.system.version import get_build_metadata, terms_version, training_version from openpilot.system.hardware.hw import Paths -from openpilot.frogpilot.common.frogpilot_functions import frogpilot_boot_functions, install_frogpilot, uninstall_frogpilot -from openpilot.frogpilot.common.frogpilot_variables import get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_functions import starpilot_boot_functions, install_starpilot, uninstall_starpilot +from openpilot.starpilot.common.starpilot_variables import ( + LEGACY_STARPILOT_PARAM_RENAMES, + LEGACY_STARPILOT_STATS_KEY_RENAMES, + get_starpilot_toggles, +) LEGACY_BOLT_FP_MIGRATION_FLAG = Path("/data") / "legacy_bolt_fp_migration_v1" STARPILOT_DEFAULTS_PARITY_MIGRATION_FLAG = Path("/data") / "starpilot_defaults_parity_v1" +STARPILOT_PARAM_RENAME_MIGRATION_FLAG = Path("/data") / "starpilot_param_rename_v1" STARPILOT_PARAM_CANONICALIZATION_MIGRATION_FLAG = Path("/data") / "starpilot_param_canonicalization_v1" +STARPILOT_PC_ROOT_MIGRATION_FLAG = Path("/data") / "starpilot_pc_root_v1" LEGACY_CARMODEL_MIGRATIONS = { "CHEVROLET_BOLT_CC_2019_2021": "CHEVROLET_BOLT_CC_2018_2021", } +STARPILOT_STATS_DROP_KEYS = {"CurrentMonthsKilometers", "ResetStats"} +STARPILOT_STATS_MAX_KEYS = {"LongestDistanceWithoutOverride", "MaxAcceleration"} def _to_text(value): @@ -43,6 +52,207 @@ def _to_text(value): return str(value) +def _has_meaningful_param_value(value) -> bool: + if value is None: + return False + if isinstance(value, bool): + return True + if isinstance(value, (bytes, bytearray, str, dict, list, tuple, set)): + return len(value) > 0 + return True + + +def _is_numeric_stat_value(value) -> bool: + return isinstance(value, (int, float)) and not isinstance(value, bool) + + +def _merge_starpilot_stat_values(existing, incoming, key=None): + if existing is None: + return incoming + if incoming is None: + return existing + + if isinstance(existing, dict) and isinstance(incoming, dict): + merged = dict(existing) + for child_key, child_value in incoming.items(): + merged[child_key] = _merge_starpilot_stat_values(merged.get(child_key), child_value, child_key) + return merged + + if key == "Month": + return incoming + + if key in STARPILOT_STATS_MAX_KEYS and _is_numeric_stat_value(existing) and _is_numeric_stat_value(incoming): + return max(existing, incoming) + + if _is_numeric_stat_value(existing) and _is_numeric_stat_value(incoming): + return existing + incoming + + return incoming + + +def _normalize_starpilot_stats_value(value): + if isinstance(value, dict): + normalized = {} + for child_key, child_value in value.items(): + normalized[child_key] = _merge_starpilot_stat_values( + normalized.get(child_key), + _normalize_starpilot_stats_value(child_value), + child_key, + ) + return normalized + return value + + +def _normalize_starpilot_stats(stats): + if not isinstance(stats, dict): + return {} + + normalized = {} + for key, value in stats.items(): + mapped_key = LEGACY_STARPILOT_STATS_KEY_RENAMES.get(key, key) + if mapped_key in STARPILOT_STATS_DROP_KEYS: + continue + + normalized[mapped_key] = _merge_starpilot_stat_values( + normalized.get(mapped_key), + _normalize_starpilot_stats_value(value), + mapped_key, + ) + + return normalized + + +def _load_first_available_param_value(params: Params, params_cache: Params, source_key: str, typed_key: str): + for params_obj in (params, params_cache): + raw_value = _read_raw_param_bytes(params_obj, source_key) + if not raw_value: + continue + + try: + return params.cpp2python(typed_key, raw_value) + except Exception: + cloudlog.exception(f"Failed to decode legacy param {source_key} as {typed_key}") + + return None + + +def migrate_starpilot_param_renames(params: Params, params_cache: Params) -> None: + if STARPILOT_PARAM_RENAME_MIGRATION_FLAG.exists(): + return + + migrated_keys: list[str] = [] + + for old_key, new_key in LEGACY_STARPILOT_PARAM_RENAMES.items(): + if new_key == "StarPilotStats": + continue + + migrated_value = _load_first_available_param_value(params, params_cache, old_key, new_key) + if not _has_meaningful_param_value(migrated_value): + continue + + current_value = params.get(new_key) + if _has_meaningful_param_value(current_value) and not (new_key == "StarPilotDongleId" and current_value != migrated_value): + continue + + try: + if current_value != migrated_value: + params.put(new_key, migrated_value) + params_cache.put(new_key, migrated_value) + migrated_keys.append(f"{old_key}->{new_key}") + except Exception: + cloudlog.exception(f"Failed to migrate legacy param {old_key} to {new_key}") + + old_stats = _normalize_starpilot_stats(_load_first_available_param_value(params, params_cache, "FrogPilotStats", "StarPilotStats")) + new_stats = _normalize_starpilot_stats(_load_first_available_param_value(params, params_cache, "StarPilotStats", "StarPilotStats")) + merged_stats = new_stats if old_stats == new_stats else _merge_starpilot_stat_values(old_stats, new_stats, "StarPilotStats") + + if _has_meaningful_param_value(merged_stats): + current_stats = params.get("StarPilotStats") + if current_stats != merged_stats: + try: + params.put("StarPilotStats", merged_stats) + params_cache.put("StarPilotStats", merged_stats) + migrated_keys.append("FrogPilotStats->StarPilotStats") + except Exception: + cloudlog.exception("Failed to migrate legacy StarPilot stats payload") + + if migrated_keys: + cloudlog.warning(f"Applied legacy StarPilot param rename migration for {migrated_keys}") + + try: + STARPILOT_PARAM_RENAME_MIGRATION_FLAG.parent.mkdir(parents=True, exist_ok=True) + STARPILOT_PARAM_RENAME_MIGRATION_FLAG.write_text(f"{datetime.datetime.now(datetime.UTC).isoformat()}\n") + except Exception: + cloudlog.exception(f"Failed to write migration flag: {STARPILOT_PARAM_RENAME_MIGRATION_FLAG}") + + +def _merge_tree_without_overwrite(source: Path, destination: Path) -> int: + moved_entries = 0 + + if not source.exists(): + return moved_entries + + if not destination.exists(): + destination.parent.mkdir(parents=True, exist_ok=True) + shutil.move(str(source), str(destination)) + return 1 + + for path in sorted(source.rglob("*"), key=lambda p: (len(p.parts), str(p))): + target = destination / path.relative_to(source) + if path.is_dir(): + target.mkdir(parents=True, exist_ok=True) + continue + + target.parent.mkdir(parents=True, exist_ok=True) + if target.exists(): + continue + + shutil.move(str(path), str(target)) + moved_entries += 1 + + for directory in sorted((p for p in source.rglob("*") if p.is_dir()), key=lambda p: len(p.parts), reverse=True): + try: + directory.rmdir() + except OSError: + pass + + try: + source.rmdir() + except OSError: + pass + + return moved_entries + + +def migrate_starpilot_pc_root() -> None: + if HARDWARE.get_device_type() != "pc" or STARPILOT_PC_ROOT_MIGRATION_FLAG.exists(): + return + + old_root = Path(Paths.comma_home()) / "frogpilot" + new_root = Path(Paths.comma_home()) / "starpilot" + + moved_entries = 0 + migration_succeeded = True + if old_root.exists(): + try: + moved_entries = _merge_tree_without_overwrite(old_root, new_root) + except Exception: + migration_succeeded = False + cloudlog.exception(f"Failed to migrate legacy PC StarPilot root from {old_root} to {new_root}") + + if moved_entries: + cloudlog.warning(f"Migrated legacy PC StarPilot root from {old_root} to {new_root}") + + if not migration_succeeded: + return + + try: + STARPILOT_PC_ROOT_MIGRATION_FLAG.parent.mkdir(parents=True, exist_ok=True) + STARPILOT_PC_ROOT_MIGRATION_FLAG.write_text(f"{datetime.datetime.now(datetime.UTC).isoformat()}\n") + except Exception: + cloudlog.exception(f"Failed to write migration flag: {STARPILOT_PC_ROOT_MIGRATION_FLAG}") + + def migrate_legacy_bolt_fingerprint(params: Params) -> None: old_fp, new_fp = next(iter(LEGACY_CARMODEL_MIGRATIONS.items())) carparams_keys = ("CarParams", "CarParamsCache", "CarParamsPersistent", "CarParamsPrevRoute") @@ -51,8 +261,8 @@ def migrate_legacy_bolt_fingerprint(params: Params) -> None: "CarParamsCache", "CarParamsPersistent", "CarParamsPrevRoute", - "FrogPilotCarParams", - "FrogPilotCarParamsPersistent", + "StarPilotCarParams", + "StarPilotCarParamsPersistent", ) car_model = _to_text(params.get("CarModel")) @@ -285,6 +495,15 @@ def manager_init() -> None: build_metadata = get_build_metadata() params = Params() + cache_params_path = "/cache/params" + if HARDWARE.get_device_type() == "pc": + cache_params_path = os.path.join(Paths.comma_home(), "cache", "params") + params_cache = Params(cache_params_path, return_defaults=True) + + # Legacy FrogPilot params are unknown to the renamed schema and would be + # deleted by clear_all() if we do not migrate them first. + migrate_starpilot_param_renames(params, params_cache) + params.clear_all(ParamKeyFlag.CLEAR_ON_MANAGER_START) params.clear_all(ParamKeyFlag.CLEAR_ON_ONROAD_TRANSITION) params.clear_all(ParamKeyFlag.CLEAR_ON_OFFROAD_TRANSITION) @@ -292,14 +511,12 @@ def manager_init() -> None: if build_metadata.release_channel: params.clear_all(ParamKeyFlag.DEVELOPMENT_ONLY) + migrate_starpilot_pc_root() + if params.get_bool("RecordFrontLock"): params.put_bool("RecordFront", True) - # FrogPilot variables - cache_params_path = "/cache/params" - if HARDWARE.get_device_type() == "pc": - cache_params_path = os.path.join(Paths.comma_home(), "cache", "params") - params_cache = Params(cache_params_path, return_defaults=True) + # StarPilot variables # Preserve StarPilot's legacy longitudinal toggle when switching branches. migrate_legacy_experimental_longitudinal(params, params_cache) @@ -371,9 +588,9 @@ def manager_init() -> None: for p in managed_processes.values(): p.prepare() - # FrogPilot variables - install_frogpilot(build_metadata, params) - frogpilot_boot_functions(build_metadata, params) + # StarPilot variables + install_starpilot(build_metadata, params) + starpilot_boot_functions(build_metadata, params) def manager_cleanup() -> None: @@ -406,32 +623,32 @@ def manager_thread() -> None: pm = messaging.PubMaster(['managerState']) write_onroad_params(False, params) - ensure_running(managed_processes.values(), False, params=params, CP=sm['carParams'], not_run=ignore, frogpilot_toggles=get_frogpilot_toggles()) + ensure_running(managed_processes.values(), False, params=params, CP=sm['carParams'], not_run=ignore, starpilot_toggles=get_starpilot_toggles()) started_prev = False ignition_prev = False - # FrogPilot variables - sm = sm.extend(['frogpilotPlan']) + # StarPilot variables + sm = sm.extend(['starpilotPlan']) params_memory = Params(memory=True) - frogpilot_toggles = get_frogpilot_toggles() + starpilot_toggles = get_starpilot_toggles() while True: sm.update(1000) started = sm['deviceState'].started - if started and not started_prev and not frogpilot_toggles.force_onroad: + if started and not started_prev and not starpilot_toggles.force_onroad: params.clear_all(ParamKeyFlag.CLEAR_ON_ONROAD_TRANSITION) - # FrogPilot variables + # StarPilot variables params_memory.clear_all(ParamKeyFlag.CLEAR_ON_ONROAD_TRANSITION) elif not started and started_prev: params.clear_all(ParamKeyFlag.CLEAR_ON_OFFROAD_TRANSITION) - # FrogPilot variables + # StarPilot variables params_memory.clear_all(ParamKeyFlag.CLEAR_ON_OFFROAD_TRANSITION) ignition = any(ps.ignitionLine or ps.ignitionCan for ps in sm['pandaStates'] if ps.pandaType != log.PandaState.PandaType.unknown) @@ -445,7 +662,7 @@ def manager_thread() -> None: started_prev = started ignition_prev = ignition - ensure_running(managed_processes.values(), started, params=params, CP=sm['carParams'], not_run=ignore, frogpilot_toggles=frogpilot_toggles) + ensure_running(managed_processes.values(), started, params=params, CP=sm['carParams'], not_run=ignore, starpilot_toggles=starpilot_toggles) running = ' '.join("{}{}\u001b[0m".format("\u001b[32m" if p.proc.is_alive() else "\u001b[31m", p.name) for p in managed_processes.values() if p.proc) @@ -476,8 +693,8 @@ def manager_thread() -> None: if shutdown: break - # FrogPilot variables - frogpilot_toggles = get_frogpilot_toggles(sm) + # StarPilot variables + starpilot_toggles = get_starpilot_toggles(sm) def main() -> None: @@ -499,7 +716,7 @@ def main() -> None: params = Params() if params.get_bool("DoUninstall"): cloudlog.warning("uninstalling") - uninstall_frogpilot() + uninstall_starpilot() elif params.get_bool("DoReboot"): cloudlog.warning("reboot") HARDWARE.reboot() diff --git a/system/manager/process.py b/system/manager/process.py index 3cc754cd..75da2cd9 100644 --- a/system/manager/process.py +++ b/system/manager/process.py @@ -250,7 +250,7 @@ class DaemonProcess(ManagerProcess): self.params = None @staticmethod - def should_run(started, params, CP, frogpilot_toggles): + def should_run(started, params, CP, starpilot_toggles): return True def prepare(self) -> None: @@ -286,7 +286,7 @@ class DaemonProcess(ManagerProcess): def ensure_running(procs: ValuesView[ManagerProcess], started: bool, params=None, CP: car.CarParams=None, - not_run: list[str] | None=None, frogpilot_toggles: SimpleNamespace=None) -> list[ManagerProcess]: + not_run: list[str] | None=None, starpilot_toggles: SimpleNamespace=None) -> list[ManagerProcess]: if not_run is None: not_run = [] @@ -297,7 +297,7 @@ def ensure_running(procs: ValuesView[ManagerProcess], started: bool, params=None cloudlog.error(f"Process {p.name} crashed with exitcode {p.proc.exitcode}, restarting") p.stop(retry=False) - if p.enabled and p.name not in not_run and p.should_run(started, params, CP, frogpilot_toggles): + if p.enabled and p.name not in not_run and p.should_run(started, params, CP, starpilot_toggles): running.append(p) else: p.stop(block=False) diff --git a/system/manager/process_config.py b/system/manager/process_config.py index f203cbd5..80295dac 100644 --- a/system/manager/process_config.py +++ b/system/manager/process_config.py @@ -11,50 +11,50 @@ from openpilot.system.manager.process import PythonProcess, NativeProcess, Daemo WEBCAM = os.getenv("USE_WEBCAM") is not None -def driverview(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def driverview(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return started or params.get_bool("IsDriverViewEnabled") -def notcar(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def notcar(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return started and CP.notCar -def iscar(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def iscar(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return started and not CP.notCar -def logging(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def logging(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: run = (not CP.notCar) or not params.get_bool("DisableLogging") return started and run def ublox_available() -> bool: return os.path.exists('/dev/ttyHS0') and not os.path.exists('/persist/comma/use-quectel-gps') -def ublox(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def ublox(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: use_ublox = ublox_available() if use_ublox != params.get_bool("UbloxAvailable"): params.put_bool("UbloxAvailable", use_ublox) return started and use_ublox -def joystick(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def joystick(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return started and params.get_bool("JoystickDebugMode") -def not_joystick(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def not_joystick(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return started and not params.get_bool("JoystickDebugMode") -def long_maneuver(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def long_maneuver(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return started and params.get_bool("LongitudinalManeuverMode") -def not_long_maneuver(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def not_long_maneuver(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return started and not params.get_bool("LongitudinalManeuverMode") -def qcomgps(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def qcomgps(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return started and not ublox_available() -def always_run(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def always_run(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return True -def only_onroad(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def only_onroad(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return started -def only_offroad(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: +def only_offroad(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: return not started def or_(*fns): @@ -63,15 +63,15 @@ def or_(*fns): def and_(*fns): return lambda *args: operator.and_(*(fn(*args) for fn in fns)) -# FrogPilot variables -def allow_logging(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: - return not frogpilot_toggles.no_logging +# StarPilot variables +def allow_logging(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: + return not starpilot_toggles.no_logging -def allow_uploads(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: - return params.get_bool("AlwaysAllowUploads") or not frogpilot_toggles.no_uploads or frogpilot_toggles.no_onroad_uploads +def allow_uploads(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: + return params.get_bool("AlwaysAllowUploads") or not starpilot_toggles.no_uploads or starpilot_toggles.no_onroad_uploads -def run_speed_limit_filler(started: bool, params: Params, CP: car.CarParams, frogpilot_toggles: SimpleNamespace) -> bool: - return frogpilot_toggles.speed_limit_filler +def run_speed_limit_filler(started: bool, params: Params, CP: car.CarParams, starpilot_toggles: SimpleNamespace) -> bool: + return starpilot_toggles.speed_limit_filler procs = [ DaemonProcess("manage_athenad", "system.athena.manage_athenad", "AthenadPid"), @@ -88,8 +88,8 @@ procs = [ PythonProcess("micd", "system.micd", iscar), PythonProcess("timed", "system.timed", always_run, enabled=not PC), - PythonProcess("modeld", "frogpilot.tinygrad_modeld.tinygrad_modeld", only_onroad), - PythonProcess("dmonitoringmodeld", "frogpilot.tinygrad_modeld.dmonitoringmodeld", driverview, enabled=(WEBCAM or not PC)), + PythonProcess("modeld", "starpilot.tinygrad_modeld.tinygrad_modeld", only_onroad), + PythonProcess("dmonitoringmodeld", "starpilot.tinygrad_modeld.dmonitoringmodeld", driverview, enabled=(WEBCAM or not PC)), PythonProcess("sensord", "system.sensord.sensord", only_onroad, enabled=not PC), PythonProcess("soundd", "selfdrive.ui.soundd", driverview), @@ -126,7 +126,7 @@ procs = [ PythonProcess("joystick", "tools.joystick.joystick_control", and_(joystick, iscar)), ] -# FrogPilot variables +# StarPilot variables device_type = HARDWARE.get_device_type() if device_type in ("tici", "tizi"): procs.append(NativeProcess("ui", "selfdrive/ui", ["./ui"], always_run, watchdog_max_dt=5)) @@ -134,12 +134,12 @@ else: # C4 (mici) runs the Python raylib UI path; keep watchdog parity with C3/C3X. procs.append(PythonProcess("ui", "selfdrive.ui.ui", always_run, watchdog_max_dt=5)) procs += [ - PythonProcess("device_syncd", "frogpilot.system.device_syncd", always_run), - PythonProcess("frogpilot_process", "frogpilot.frogpilot_process", always_run), - PythonProcess("mapd", "frogpilot.navigation.mapd_wrapper", always_run), - PythonProcess("the_pond", "frogpilot.system.the_pond.the_pond", always_run, nice=19), - PythonProcess("galaxy", "frogpilot.system.galaxy.galaxy", always_run, nice=19), - PythonProcess("speed_limit_filler", "frogpilot.system.speed_limit_filler", run_speed_limit_filler), + PythonProcess("device_syncd", "starpilot.system.device_syncd", always_run), + PythonProcess("starpilot_process", "starpilot.starpilot_process", always_run), + PythonProcess("mapd", "starpilot.navigation.mapd_wrapper", always_run), + PythonProcess("the_pond", "starpilot.system.the_pond.the_pond", always_run, nice=19), + PythonProcess("galaxy", "starpilot.system.galaxy.galaxy", always_run, nice=19), + PythonProcess("speed_limit_filler", "starpilot.system.speed_limit_filler", run_speed_limit_filler), ] managed_processes = {p.name: p for p in procs} diff --git a/system/sentry.py b/system/sentry.py index 62240d0d..856d6255 100644 --- a/system/sentry.py +++ b/system/sentry.py @@ -13,7 +13,7 @@ from openpilot.common.swaglog import cloudlog from openpilot.system.hardware.hw import Paths from openpilot.system.version import get_build_metadata, get_version -from openpilot.frogpilot.common.frogpilot_variables import ERROR_LOGS_PATH, params +from openpilot.starpilot.common.starpilot_variables import ERROR_LOGS_PATH, params class SentryProject(Enum): # python project @@ -71,7 +71,7 @@ def capture_exception(*args, crash_log=True, **kwargs) -> None: cloudlog.exception("sentry exception") -def capture_report(discord_user, report, frogpilot_toggles): +def capture_report(discord_user, report, starpilot_toggles): error_file_path = ERROR_LOGS_PATH / "error.txt" error_content = "No error log found." @@ -80,7 +80,7 @@ def capture_report(discord_user, report, frogpilot_toggles): with sentry_sdk.push_scope() as scope: scope.set_context("Error Log", {"content": error_content}) - scope.set_context("Toggle Values", frogpilot_toggles) + scope.set_context("Toggle Values", starpilot_toggles) sentry_sdk.capture_message(f"{discord_user} submitted report: {report}", level="fatal") sentry_sdk.flush() diff --git a/system/timed.py b/system/timed.py index bd098f6d..ba256c9f 100644 --- a/system/timed.py +++ b/system/timed.py @@ -31,7 +31,7 @@ def set_time(new_time): cloudlog.exception("timed.failed_setting_time") -# FrogPilot variables +# StarPilot variables def set_timezone(timezone): valid_timezones = subprocess.check_output("timedatectl list-timezones", shell=True, encoding="utf8").strip().split("\n") if timezone not in valid_timezones: @@ -65,7 +65,7 @@ def main() -> NoReturn: pm = messaging.PubMaster(['clocks']) sm = messaging.SubMaster([gps_location_service]) - # FrogPilot variables + # StarPilot variables tf = TimezoneFinder() if TimezoneFinder is not None else None timezonefinder_logged = False @@ -92,7 +92,7 @@ def main() -> NoReturn: set_time(gps_time) - # FrogPilot variables + # StarPilot variables if tf is not None: timezone = tf.timezone_at(lng=gps.longitude, lat=gps.latitude) if timezone is not None and timezone != last_timezone: diff --git a/system/ui/lib/application.py b/system/ui/lib/application.py index 06f10e0d..8cbb8380 100644 --- a/system/ui/lib/application.py +++ b/system/ui/lib/application.py @@ -420,13 +420,13 @@ class GuiApplication: return texture_obj def starpilot_texture(self, asset_path: str, width: int | None = None, height: int | None = None, alpha_premultiply=False, keep_aspect_ratio=True): - """Load a texture from the FrogPilot assets folder.""" + """Load a texture from the StarPilot assets folder.""" cache_key = f"starpilot_{asset_path}_{width}_{height}_{alpha_premultiply}{keep_aspect_ratio}" if cache_key in self._textures: return self._textures[cache_key] - frogpilot_assets = files("openpilot.frogpilot").joinpath("assets") - with as_file(frogpilot_assets.joinpath(asset_path)) as fspath: + starpilot_assets = files("openpilot.starpilot").joinpath("assets") + with as_file(starpilot_assets.joinpath(asset_path)) as fspath: image_obj = self._load_image_from_path(fspath.as_posix(), width, height, alpha_premultiply, keep_aspect_ratio) texture_obj = self._load_texture_from_image(image_obj) self._textures[cache_key] = texture_obj diff --git a/system/ui/spinner.py b/system/ui/spinner.py index a2c4f531..69f13ac5 100755 --- a/system/ui/spinner.py +++ b/system/ui/spinner.py @@ -34,7 +34,7 @@ DARKGRAY = (55, 55, 55, 255) RESET_TAP_COUNT = 8 RESET_TAP_WINDOW_S = 4.0 -# FrogPilot variables +# StarPilot variables GREEN = (23, 134, 68, 242) diff --git a/system/ui/widgets/selection_dialog.py b/system/ui/widgets/selection_dialog.py index f535547f..708fb2df 100644 --- a/system/ui/widgets/selection_dialog.py +++ b/system/ui/widgets/selection_dialog.py @@ -176,7 +176,7 @@ class SelectionDialog(Widget): if isinstance(self._options_raw, dict): series_keys = list(self._options_raw.keys()) - priority_series = ["FrogPilot", "Comma", "Experimental"] + priority_series = ["StarPilot", "Comma", "Experimental"] sorted_series_keys = [] for p in priority_series: if p in series_keys: diff --git a/system/updated/updated.py b/system/updated/updated.py index 1fb9feef..9fbd5780 100644 --- a/system/updated/updated.py +++ b/system/updated/updated.py @@ -22,7 +22,7 @@ from openpilot.selfdrive.selfdrived.alertmanager import set_offroad_alert from openpilot.system.hardware import AGNOS, HARDWARE from openpilot.system.version import get_build_metadata -from openpilot.frogpilot.common.frogpilot_variables import BACKUP_PATH, get_frogpilot_toggles +from openpilot.starpilot.common.starpilot_variables import BACKUP_PATH, get_starpilot_toggles LOCK_FILE = os.getenv("UPDATER_LOCK_FILE", "/tmp/safe_staging_overlay.lock") STAGING_ROOT = os.getenv("UPDATER_STAGING_ROOT", "/data/safe_staging") @@ -413,7 +413,7 @@ class Updater: finalize_update() cloudlog.info("finalize success!") - # FrogPilot variables + # StarPilot variables if os.path.isfile(BACKUP_PATH): os.remove(BACKUP_PATH) @@ -454,15 +454,15 @@ def main() -> None: # Run the update loop first_run = True - # FrogPilot variables + # StarPilot variables params_memory = Params(memory=True) while True: wait_helper.ready_event.clear() - # FrogPilot variables - frogpilot_toggles = get_frogpilot_toggles() - automatic_updates_enabled = getattr(frogpilot_toggles, "automatic_updates", True) + # StarPilot variables + starpilot_toggles = get_starpilot_toggles() + automatic_updates_enabled = getattr(starpilot_toggles, "automatic_updates", True) user_requested_action = wait_helper.user_request != UserRequest.NONE manual_update_requested = params_memory.get_bool("ManualUpdateInitiated") diff --git a/system/version.py b/system/version.py index 2966a2e4..ead7aa1e 100644 --- a/system/version.py +++ b/system/version.py @@ -10,8 +10,8 @@ from openpilot.common.basedir import BASEDIR from openpilot.common.swaglog import cloudlog from openpilot.common.git import get_commit, get_origin, get_branch, get_short_branch, get_commit_date -RELEASE_BRANCHES = ['FrogPilot', 'FrogPilot-Vetting'] -TESTED_BRANCHES = RELEASE_BRANCHES + ['FrogPilot-Staging', 'FrogPilot-Testing'] +RELEASE_BRANCHES = ['StarPilot', 'StarPilot-Vetting'] +TESTED_BRANCHES = RELEASE_BRANCHES + ['StarPilot-Staging', 'StarPilot-Testing'] BUILD_METADATA_FILENAME = "build.json" diff --git a/tools/StarPilot/derive_feasible_params.py b/tools/StarPilot/derive_feasible_params.py index a00117be..9c1fe20b 100755 --- a/tools/StarPilot/derive_feasible_params.py +++ b/tools/StarPilot/derive_feasible_params.py @@ -20,7 +20,7 @@ REPO_ROOT = get_repo_root() PARAMS_CC_PATH = os.path.join(REPO_ROOT, 'common/params.cc') UI_DIRECTORIES = [ os.path.join(REPO_ROOT, 'selfdrive/ui'), - os.path.join(REPO_ROOT, 'frogpilot/ui') + os.path.join(REPO_ROOT, 'starpilot/ui') ] # A curated list of parameters that are known to be strictly readable state metadata @@ -31,8 +31,8 @@ KNOWN_READ_ONLY = { "ClusterOffset", "Compass", "DeveloperSidebarMetric1", "DeveloperSidebarMetric2", "DeveloperSidebarMetric3", "DeveloperSidebarMetric4", "DeveloperSidebarMetric5", "DeveloperSidebarMetric6", "DeveloperSidebarMetric7", "DongleId", - "FrogPilotCarParamsPersistent", "FrogPilotDrives", "FrogPilotKilometers", - "FrogPilotMinutes", "GitBranch", "GitCommit", "GitCommitDate", "GitDiff", + "StarPilotCarParamsPersistent", "StarPilotDrives", "StarPilotKilometers", + "StarPilotMinutes", "GitBranch", "GitCommit", "GitCommitDate", "GitDiff", "GitRemote", "GithubSshKeys", "GithubUsername", "HardwareSerial", "IMEI", "InstallDate", "IsRhdDetected", "KonikMinutes", "LastGPSPosition", "LastMapsUpdate", "LastUpdateTime", "ModelDrivesAndScores", "ModelReleasedDates", diff --git a/tools/StarPilot/feasibleparams.txt b/tools/StarPilot/feasibleparams.txt index 57fdb81d..cb218d9a 100644 --- a/tools/StarPilot/feasibleparams.txt +++ b/tools/StarPilot/feasibleparams.txt @@ -111,7 +111,7 @@ ForceFingerprint ForceMPHDashboard ForceStops ForceTorqueController -FrogPilotStats +StarPilotStats FrogsGoMoosTweak FullMap GMPedalLongitudinal diff --git a/tools/StarPilot/generate_pond_layout.py b/tools/StarPilot/generate_pond_layout.py index cc295fd0..5f312d27 100755 --- a/tools/StarPilot/generate_pond_layout.py +++ b/tools/StarPilot/generate_pond_layout.py @@ -61,7 +61,7 @@ HIDDEN_KEYS = { "ToyotaDoors", } -# Keys that are boolean toggles despite ambiguous defaults in frogpilot_variables.py. +# Keys that are boolean toggles despite ambiguous defaults in starpilot_variables.py. FORCE_BOOL_KEYS = {"EVTuning"} DEVELOPER_SIDEBAR_METRIC_KEYS = { @@ -149,7 +149,7 @@ for cmap in PARENT_KEYS_MAPPING.values(): ALL_PARENT_KEYS.add(parent) def get_variables_data(): - filepath = os.path.join(REPO_ROOT, "frogpilot/common/frogpilot_variables.py") + filepath = os.path.join(REPO_ROOT, "starpilot/common/starpilot_variables.py") excluded = set() defaults = {} if not os.path.exists(filepath): @@ -197,10 +197,10 @@ def get_variables_data(): excluded = ast.literal_eval(node.value) except: pass - elif getattr(target, 'id', '') in ('frogpilot_default_params', 'misc_tuning_levels'): + elif getattr(target, 'id', '') in ('starpilot_default_params', 'misc_tuning_levels'): parse_params_list(node.value) elif isinstance(node, ast.AnnAssign): - if getattr(node.target, 'id', '') in ('frogpilot_default_params', 'misc_tuning_levels'): + if getattr(node.target, 'id', '') in ('starpilot_default_params', 'misc_tuning_levels'): parse_params_list(node.value) return excluded, defaults @@ -208,7 +208,7 @@ def get_variables_data(): EXCLUDED_KEYS, DEFAULT_TYPES = get_variables_data() def get_editable_keys(): - filepath = os.path.join(REPO_ROOT, "frogpilot/common/frogpilot_variables.py") + filepath = os.path.join(REPO_ROOT, "starpilot/common/starpilot_variables.py") editable = set() if not os.path.exists(filepath): return editable @@ -220,11 +220,11 @@ def get_editable_keys(): value_node = None if isinstance(node, ast.Assign): for target in node.targets: - if getattr(target, 'id', '') == 'frogpilot_default_params': + if getattr(target, 'id', '') == 'starpilot_default_params': value_node = node.value break elif isinstance(node, ast.AnnAssign): - if getattr(node.target, 'id', '') == 'frogpilot_default_params': + if getattr(node.target, 'id', '') == 'starpilot_default_params': value_node = node.value if isinstance(value_node, ast.List): @@ -301,7 +301,7 @@ def extract_bracket_block(text, start_idx): return "" def parse_cpp_file(filename): - filepath = os.path.join(REPO_ROOT, "frogpilot/ui/qt/offroad", filename) + filepath = os.path.join(REPO_ROOT, "starpilot/ui/qt/offroad", filename) if not os.path.exists(filepath): return [] with open(filepath, 'r', encoding='utf-8') as f: @@ -322,7 +322,7 @@ def parse_cpp_file(filename): child_to_qsets = {} header_filename = filename.replace(".cc", ".h") - header_filepath = os.path.join(REPO_ROOT, "frogpilot/ui/qt/offroad", header_filename) + header_filepath = os.path.join(REPO_ROOT, "starpilot/ui/qt/offroad", header_filename) full_source = content if os.path.exists(header_filepath): with open(header_filepath, 'r', encoding='utf-8') as fh: @@ -421,7 +421,7 @@ def parse_cpp_file(filename): if snippet_match: assignment = snippet_match.group(1) - if "FrogPilotParamValueControl" in assignment or "FrogPilotParamValueButtonControl" in assignment: + if "StarPilotParamValueControl" in assignment or "StarPilotParamValueButtonControl" in assignment: widget_type = "numeric" if data_type in ("string", "bool", "unknown"): data_type = "float" @@ -491,7 +491,7 @@ def parse_cpp_file(filename): items.append(s) - # Mirror CELead's split sub-toggles from FrogPilotButtonToggleControl. + # Mirror CELead's split sub-toggles from StarPilotButtonToggleControl. if key == "CELead": items.extend([ { @@ -542,7 +542,7 @@ def main(): "icon": cat["icon"], "params": items }) - output_path = os.path.join(REPO_ROOT, "frogpilot/system/the_pond/assets/components/tools/device_settings_layout.json") + output_path = os.path.join(REPO_ROOT, "starpilot/system/the_pond/assets/components/tools/device_settings_layout.json") with open(output_path, 'w', encoding='utf-8') as f: json.dump(layout, f, indent=2) diff --git a/tools/agnos/patch_system_reset_image.py b/tools/agnos/patch_system_reset_image.py index 5ca92e30..51fa82da 100644 --- a/tools/agnos/patch_system_reset_image.py +++ b/tools/agnos/patch_system_reset_image.py @@ -484,7 +484,7 @@ def pick_source_url(system_entry: dict, override: str | None) -> str: def find_default_reference_manifest(primary_manifest_path: Path) -> Path | None: # Expected tree layout for local development: - # /frogpilot/system/hardware/tici/agnos.json + # /starpilot/system/hardware/tici/agnos.json # /openpilot/system/hardware/tici/agnos.json repo_root = primary_manifest_path for _ in range(4): diff --git a/tools/lib/api.py b/tools/lib/api.py index db5f94cd..50fe296e 100644 --- a/tools/lib/api.py +++ b/tools/lib/api.py @@ -1,7 +1,7 @@ import os import requests -from openpilot.frogpilot.common.frogpilot_utilities import use_konik_server +from openpilot.starpilot.common.starpilot_utilities import use_konik_server API_HOST = os.getenv('API_HOST', f"https://api.{'konik.ai' if use_konik_server() else 'commadotai.com'}") diff --git a/tools/lib/auth.py b/tools/lib/auth.py index 2e1de97c..cabdb84e 100755 --- a/tools/lib/auth.py +++ b/tools/lib/auth.py @@ -33,7 +33,7 @@ from urllib.parse import parse_qs, urlencode from openpilot.tools.lib.api import APIError, CommaApi, UnauthorizedError from openpilot.tools.lib.auth_config import set_token, get_token -from openpilot.frogpilot.common.frogpilot_utilities import use_konik_server +from openpilot.starpilot.common.starpilot_utilities import use_konik_server API_HOST = os.getenv('API_HOST', f"https://api.{'konik' if use_konik_server() else 'comma'}.ai") PORT = 3000 diff --git a/tools/scripts/fetch_image_from_route.py b/tools/scripts/fetch_image_from_route.py index 40e4a316..d02f75fd 100755 --- a/tools/scripts/fetch_image_from_route.py +++ b/tools/scripts/fetch_image_from_route.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import sys -from openpilot.frogpilot.common.frogpilot_utilities import use_konik_server +from openpilot.starpilot.common.starpilot_utilities import use_konik_server if len(sys.argv) < 4: print(f"{sys.argv[0]} [front|wide|driver]")