mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-08-21 08:14:00 +08:00
day2
This commit is contained in:
@@ -37,13 +37,13 @@ class FrogPilotCard:
|
||||
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 sm["carControl"].longActive and getattr(frogpilot_toggles, f"force_coast_via_{key}"):
|
||||
elif getattr(frogpilot_toggles, f"force_coast_via_{key}"):
|
||||
self.force_coast = not self.force_coast
|
||||
elif getattr(frogpilot_toggles, f"pause_lateral_via_{key}"):
|
||||
self.pause_lateral = not self.pause_lateral
|
||||
elif sm["carControl"].longActive and getattr(frogpilot_toggles, f"pause_longitudinal_via_{key}"):
|
||||
elif getattr(frogpilot_toggles, f"pause_longitudinal_via_{key}"):
|
||||
self.pause_longitudinal = not self.pause_longitudinal
|
||||
elif getattr(frogpilot_toggles, f"traffic_mode_via_{key}"):
|
||||
elif sm["carControl"].longActive and getattr(frogpilot_toggles, f"traffic_mode_via_{key}"):
|
||||
self.traffic_mode_enabled = not self.traffic_mode_enabled
|
||||
|
||||
def handle_experimental_mode(self, sm, frogpilot_toggles):
|
||||
@@ -83,6 +83,8 @@ class FrogPilotCard:
|
||||
if sm.updated["frogpilotPlan"] 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")
|
||||
|
||||
if frogpilotCarState.distancePressed:
|
||||
self.gap_counter += 1
|
||||
elif not self.distancePressed_previously:
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
|
||||
import numpy as np
|
||||
|
||||
from openpilot.common.realtime import DT_MDL
|
||||
@@ -21,7 +23,11 @@ class CurveSpeedController:
|
||||
|
||||
self.training_timer = 0
|
||||
|
||||
self.curvature_data = self.frogpilot_planner.params.get("CurvatureData")
|
||||
curvature_data_raw = self.frogpilot_planner.params.get("CurvatureData", encoding="utf-8")
|
||||
try:
|
||||
self.curvature_data = json.loads(curvature_data_raw or "{}")
|
||||
except (TypeError, ValueError):
|
||||
self.curvature_data = {}
|
||||
|
||||
self.calculate_weights()
|
||||
self.update_lateral_acceleration()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# PFEIFER - SLC - Modified by FrogAi for FrogPilot
|
||||
import calendar
|
||||
import json
|
||||
import numpy as np
|
||||
import requests
|
||||
|
||||
@@ -36,6 +37,7 @@ OFFSET_MAP_METRIC = [
|
||||
class SpeedLimitController:
|
||||
def __init__(self, FrogPilotVCruise):
|
||||
self.frogpilot_planner = FrogPilotVCruise.frogpilot_planner
|
||||
self.frogpilot_toggles = None
|
||||
|
||||
self.calling_mapbox = False
|
||||
self.override_slc = False
|
||||
@@ -53,14 +55,18 @@ class SpeedLimitController:
|
||||
self.previous_source = "None"
|
||||
self.source = "None"
|
||||
|
||||
self.mapbox_requests = self.frogpilot_planner.params.get("MapBoxRequests")
|
||||
mapbox_requests_raw = self.frogpilot_planner.params.get("MapBoxRequests", encoding="utf-8")
|
||||
try:
|
||||
self.mapbox_requests = json.loads(mapbox_requests_raw or "{}")
|
||||
except (TypeError, ValueError):
|
||||
self.mapbox_requests = {}
|
||||
self.mapbox_requests.setdefault("total_requests", 0)
|
||||
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")
|
||||
self.mapbox_token = self.frogpilot_planner.params.get("MapboxSecretKey", encoding="utf-8")
|
||||
|
||||
self.previous_target = self.frogpilot_planner.params.get("PreviousSpeedLimit")
|
||||
self.previous_target = self.frogpilot_planner.params.get_float("PreviousSpeedLimit")
|
||||
|
||||
self.executor = ThreadPoolExecutor(max_workers=1)
|
||||
|
||||
@@ -70,10 +76,12 @@ class SpeedLimitController:
|
||||
|
||||
@property
|
||||
def experimental_mode(self):
|
||||
return self.target == 0 and self.frogpilot_toggles.slc_fallback_experimental_mode
|
||||
return self.target == 0 and bool(getattr(self.frogpilot_toggles, "slc_fallback_experimental_mode", False))
|
||||
|
||||
@property
|
||||
def offset(self):
|
||||
if self.frogpilot_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)
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ class WeatherChecker:
|
||||
self.last_updated = None
|
||||
self.requesting = False
|
||||
|
||||
self.user_api_key = self.frogpilot_planner.params.get("WeatherToken")
|
||||
self.user_api_key = self.frogpilot_planner.params.get("WeatherToken", encoding="utf-8")
|
||||
|
||||
if self.user_api_key:
|
||||
self.check_interval = 60
|
||||
|
||||
Reference in New Issue
Block a user