IQ.Pilot Release Commit @ 482798a
This commit is contained in:
@@ -198,7 +198,8 @@ class MiciHomeLayout(Widget):
|
||||
# Expect "version / branch / commit / date"; be tolerant of other formats
|
||||
try:
|
||||
version, branch, commit, date = description.split(" / ")
|
||||
return version, branch, commit, date
|
||||
# version/date/branch share one 536px line: the brand prefix and clock time push the branch off screen
|
||||
return version.removeprefix(HOME_TITLE_TEXT).strip() or version, branch, commit, date.split(" ")[0]
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
|
||||
@@ -321,7 +321,7 @@ class TargetBranchButton(BigButton):
|
||||
|
||||
class DisableUpdatesButton(BigButton):
|
||||
def __init__(self):
|
||||
super().__init__(tr("disable\nupdates"), tr("currently on"))
|
||||
super().__init__(tr("automatic\nupdates"), tr("on"))
|
||||
self.set_enabled(lambda: ui_state.is_offroad())
|
||||
self.set_press_effect_enabled(False)
|
||||
self._label.set_font_size(40)
|
||||
@@ -335,8 +335,7 @@ class DisableUpdatesButton(BigButton):
|
||||
|
||||
def _sync_from_params(self):
|
||||
disabled = ui_state.params.get_bool("DisableUpdates")
|
||||
self.set_text(tr("enable\nupdates") if disabled else tr("disable\nupdates"))
|
||||
self.set_value(tr("currently off") if disabled else tr("currently on"))
|
||||
self.set_value(tr("off") if disabled else tr("on"))
|
||||
|
||||
def _update_state(self):
|
||||
super()._update_state()
|
||||
|
||||
@@ -80,6 +80,8 @@ class VehicleLayoutMici(NavScroller):
|
||||
self._vw_lateral = BigParamControl(tr("lateral when cruise faulted"), "AllowLateralWhenLongUnavailable")
|
||||
self._vw_mqb_acc_resume = BigParamControl(tr("MQB ACC resume"), "iqMqbAccResume")
|
||||
self._vw_mqb_steering_lockout = BigParamControl(tr("MQB steering lockout"), "iqMqbSteeringLockout")
|
||||
self._vw_curvature_controller = BigParamControl(tr("curvature controller"), "EnableCurvatureController")
|
||||
self._vw_smooth_steer = BigParamControl(tr("smooth steering"), "EnableSmoothSteer")
|
||||
self._tesla_vtb = BigParamControl(tr("virtual torque blending"), "IQTeslaTorqueBlend")
|
||||
self._tesla_fsd_visualization = BigParamControl(tr("FSD visuals"), "IQTeslaFsdVisualization")
|
||||
|
||||
@@ -87,7 +89,8 @@ class VehicleLayoutMici(NavScroller):
|
||||
"toyota": [self._toyota_long],
|
||||
"hyundai": [self._hyundai_tuning],
|
||||
"subaru": [self._subaru_snag, self._subaru_manual],
|
||||
"volkswagen": [self._vw_pq_hca, self._vw_lateral, self._vw_mqb_acc_resume, self._vw_mqb_steering_lockout],
|
||||
"volkswagen": [self._vw_pq_hca, self._vw_lateral, self._vw_mqb_acc_resume, self._vw_mqb_steering_lockout,
|
||||
self._vw_curvature_controller, self._vw_smooth_steer],
|
||||
"tesla": [self._tesla_vtb, self._tesla_fsd_visualization],
|
||||
}
|
||||
self._all_brand_widgets = [w for ws in self._brand_widgets.values() for w in ws]
|
||||
@@ -123,6 +126,10 @@ class VehicleLayoutMici(NavScroller):
|
||||
flags = self._vw_flags()
|
||||
return not bool(flags & (VolkswagenFlags.PQ | VolkswagenFlags.MLB | VolkswagenFlags.MEB | VolkswagenFlags.MEB_GEN2 | VolkswagenFlags.MQB_EVO))
|
||||
|
||||
def _is_vw_curvature_car(self) -> bool:
|
||||
from iqdbc.car.volkswagen.values import VolkswagenFlags
|
||||
return bool(self._vw_flags() & (VolkswagenFlags.MEB | VolkswagenFlags.MQB_EVO))
|
||||
|
||||
def _supports_vw_lateral_when_faulted(self) -> bool:
|
||||
from iqdbc.car.volkswagen.values import VolkswagenFlags
|
||||
# PQ, MEB, MQB_EVO and base MQB all implement cruiseFaultLateralMode in carstate.py.
|
||||
@@ -193,6 +200,7 @@ class VehicleLayoutMici(NavScroller):
|
||||
uses_hca_status_toggle = self._uses_vw_hca_status_toggle()
|
||||
is_mqb = self._is_vw_mqb()
|
||||
supports_lateral_when_faulted = self._supports_vw_lateral_when_faulted()
|
||||
is_curvature_car = self._is_vw_curvature_car()
|
||||
visible = set(self._brand_widgets.get(brand, []))
|
||||
for w in self._all_brand_widgets:
|
||||
show = w in visible
|
||||
@@ -202,6 +210,8 @@ class VehicleLayoutMici(NavScroller):
|
||||
show = show and is_mqb
|
||||
elif w is self._vw_lateral:
|
||||
show = show and supports_lateral_when_faulted
|
||||
elif w in (self._vw_curvature_controller, self._vw_smooth_steer):
|
||||
show = show and is_curvature_car
|
||||
w.set_visible(show)
|
||||
if show:
|
||||
w.refresh()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import colorsys
|
||||
import numpy as np
|
||||
import pyray as rl
|
||||
from iqpilot.cereal import messaging, car
|
||||
from iqpilot.cereal import car
|
||||
from dataclasses import dataclass, field
|
||||
from iqpilot.common.params import Params
|
||||
from iqpilot.common.filter_simple import FirstOrderFilter
|
||||
@@ -9,7 +9,7 @@ from iqpilot.selfdrive.locationd.calibrationd import HEIGHT_INIT
|
||||
from iqpilot.ui.onroad.hud_overlays import ChevronMetrics
|
||||
from iqpilot.ui.onroad.lead_confidence import driving_confidence
|
||||
from iqpilot.selfdrive.locationd.calibration_helpers import get_render_path_height
|
||||
from iqpilot.selfdrive.ui.ui_state import ui_state, UIStatus
|
||||
from iqpilot.selfdrive.ui.ui_state import ui_state, UIStatus, log_param_from_bytes
|
||||
from iqpilot.selfdrive.ui.mici.onroad import blend_colors
|
||||
from iqpilot.system.ui.lib.application import gui_app
|
||||
from iqpilot.system.ui.lib.shader_polygon import draw_polygon, Gradient
|
||||
@@ -94,8 +94,7 @@ class ModelRenderer(Widget):
|
||||
)
|
||||
|
||||
# Get longitudinal control setting from car parameters
|
||||
if car_params := Params().get("CarParams"):
|
||||
cp = messaging.log_from_bytes(car_params, car.CarParams)
|
||||
if (cp := log_param_from_bytes(Params(), "CarParams", car.CarParams)) is not None:
|
||||
self._longitudinal_control = cp.openpilotLongitudinalControl
|
||||
|
||||
def set_transform(self, transform: np.ndarray):
|
||||
|
||||
Reference in New Issue
Block a user