Hey Comma

This commit is contained in:
firestar5683
2026-04-24 00:58:57 -05:00
parent 1430c59da9
commit 0024516f18
5 changed files with 308 additions and 0 deletions
@@ -15,6 +15,7 @@ ACTION_OPTIONS = [
{"id": 5, "name": "Toggle Experimental", "requires_longitudinal": True},
{"id": 6, "name": "Toggle Traffic", "requires_longitudinal": True},
{"id": 7, "name": "Toggle Switchback"},
{"id": 8, "name": "Create Bookmark"},
]
ACTION_NAMES = [option["name"] for option in ACTION_OPTIONS]
ACTION_IDS = {option["name"]: option["id"] for option in ACTION_OPTIONS}
+11
View File
@@ -126,6 +126,7 @@ BUTTON_FUNCTIONS = {
"EXPERIMENTAL_MODE": 5,
"TRAFFIC_MODE": 6,
"SWITCHBACK_MODE": 7,
"BOOKMARK": 8,
}
DEVELOPER_SIDEBAR_METRICS = {
@@ -766,6 +767,7 @@ class StarPilotVariables:
toggle.personality_profile_via_distance = toggle.openpilot_longitudinal and distance_button_control == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_distance = distance_button_control == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_distance = toggle.openpilot_longitudinal and distance_button_control == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_distance = distance_button_control == BUTTON_FUNCTIONS["BOOKMARK"]
distance_button_control_long = self.get_value("LongDistanceButtonControl", cast=float)
toggle.experimental_mode_via_distance_long = toggle.openpilot_longitudinal and distance_button_control_long == BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]
@@ -776,6 +778,7 @@ class StarPilotVariables:
toggle.personality_profile_via_distance_long = toggle.openpilot_longitudinal and distance_button_control_long == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_distance_long = distance_button_control_long == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_distance_long = toggle.openpilot_longitudinal and distance_button_control_long == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_distance_long = distance_button_control_long == BUTTON_FUNCTIONS["BOOKMARK"]
distance_button_control_very_long = self.get_value("VeryLongDistanceButtonControl", cast=float)
toggle.experimental_mode_via_distance_very_long = toggle.openpilot_longitudinal and distance_button_control_very_long == BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]
@@ -786,6 +789,7 @@ class StarPilotVariables:
toggle.personality_profile_via_distance_very_long = toggle.openpilot_longitudinal and distance_button_control_very_long == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_distance_very_long = distance_button_control_very_long == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_distance_very_long = toggle.openpilot_longitudinal and distance_button_control_very_long == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_distance_very_long = distance_button_control_very_long == BUTTON_FUNCTIONS["BOOKMARK"]
toggle.frogsgomoo_tweak = self.get_value("FrogsGoMoosTweak", condition=toggle.openpilot_longitudinal and toggle.car_make == "toyota")
toggle.stoppingDecelRate = 0.01 if toggle.frogsgomoo_tweak else toggle.stoppingDecelRate
@@ -838,6 +842,7 @@ class StarPilotVariables:
toggle.personality_profile_via_lkas = toggle.openpilot_longitudinal and lkas_button_control == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_lkas = lkas_button_control == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_lkas = toggle.openpilot_longitudinal and lkas_button_control == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_lkas = lkas_button_control == BUTTON_FUNCTIONS["BOOKMARK"]
has_canfd_media_buttons = toggle.car_make == "hyundai" and bool(CP.flags & HyundaiFlags.CANFD)
mode_button_control = self.get_value("ModeButtonControl", cast=float, condition=has_canfd_media_buttons)
@@ -849,6 +854,7 @@ class StarPilotVariables:
toggle.personality_profile_via_mode = toggle.openpilot_longitudinal and mode_button_control == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_mode = mode_button_control == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_mode = toggle.openpilot_longitudinal and mode_button_control == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_mode = mode_button_control == BUTTON_FUNCTIONS["BOOKMARK"]
mode_button_control_long = self.get_value("LongModeButtonControl", cast=float, condition=has_canfd_media_buttons)
toggle.experimental_mode_via_mode_long = toggle.openpilot_longitudinal and mode_button_control_long == BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]
@@ -859,6 +865,7 @@ class StarPilotVariables:
toggle.personality_profile_via_mode_long = toggle.openpilot_longitudinal and mode_button_control_long == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_mode_long = mode_button_control_long == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_mode_long = toggle.openpilot_longitudinal and mode_button_control_long == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_mode_long = mode_button_control_long == BUTTON_FUNCTIONS["BOOKMARK"]
mode_button_control_very_long = self.get_value("VeryLongModeButtonControl", cast=float, condition=has_canfd_media_buttons)
toggle.experimental_mode_via_mode_very_long = toggle.openpilot_longitudinal and mode_button_control_very_long == BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]
@@ -869,6 +876,7 @@ class StarPilotVariables:
toggle.personality_profile_via_mode_very_long = toggle.openpilot_longitudinal and mode_button_control_very_long == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_mode_very_long = mode_button_control_very_long == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_mode_very_long = toggle.openpilot_longitudinal and mode_button_control_very_long == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_mode_very_long = mode_button_control_very_long == BUTTON_FUNCTIONS["BOOKMARK"]
star_button_control = self.get_value("StarButtonControl", cast=float, condition=has_canfd_media_buttons)
toggle.experimental_mode_via_star = toggle.openpilot_longitudinal and star_button_control == BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]
@@ -879,6 +887,7 @@ class StarPilotVariables:
toggle.personality_profile_via_star = toggle.openpilot_longitudinal and star_button_control == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_star = star_button_control == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_star = toggle.openpilot_longitudinal and star_button_control == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_star = star_button_control == BUTTON_FUNCTIONS["BOOKMARK"]
star_button_control_long = self.get_value("LongStarButtonControl", cast=float, condition=has_canfd_media_buttons)
toggle.experimental_mode_via_star_long = toggle.openpilot_longitudinal and star_button_control_long == BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]
@@ -889,6 +898,7 @@ class StarPilotVariables:
toggle.personality_profile_via_star_long = toggle.openpilot_longitudinal and star_button_control_long == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_star_long = star_button_control_long == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_star_long = toggle.openpilot_longitudinal and star_button_control_long == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_star_long = star_button_control_long == BUTTON_FUNCTIONS["BOOKMARK"]
star_button_control_very_long = self.get_value("VeryLongStarButtonControl", cast=float, condition=has_canfd_media_buttons)
toggle.experimental_mode_via_star_very_long = toggle.openpilot_longitudinal and star_button_control_very_long == BUTTON_FUNCTIONS["EXPERIMENTAL_MODE"]
@@ -899,6 +909,7 @@ class StarPilotVariables:
toggle.personality_profile_via_star_very_long = toggle.openpilot_longitudinal and star_button_control_very_long == BUTTON_FUNCTIONS["PERSONALITY_PROFILE"]
toggle.switchback_mode_via_star_very_long = star_button_control_very_long == BUTTON_FUNCTIONS["SWITCHBACK_MODE"]
toggle.traffic_mode_via_star_very_long = toggle.openpilot_longitudinal and star_button_control_very_long == BUTTON_FUNCTIONS["TRAFFIC_MODE"]
toggle.bookmark_via_star_very_long = star_button_control_very_long == BUTTON_FUNCTIONS["BOOKMARK"]
toggle.has_canfd_media_buttons = has_canfd_media_buttons
toggle.lock_doors_timer = self.get_value("LockDoorsTimer", cast=float, condition=(toggle.car_make == "toyota"))
+9
View File
@@ -1,4 +1,6 @@
#!/usr/bin/env python3
import cereal.messaging as messaging
from opendbc.safety import ALTERNATIVE_EXPERIENCE
from openpilot.common.params import Params
from openpilot.selfdrive.car.cruise import CRUISE_LONG_PRESS, ButtonType
@@ -18,6 +20,7 @@ class StarPilotCard:
self.params = Params(return_defaults=True)
self.params_memory = Params(memory=True)
self.pm = messaging.PubMaster(["userBookmark"])
self.accel_pressed = False
self.always_on_lateral_allowed = False
@@ -47,6 +50,8 @@ class StarPilotCard:
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"bookmark_via_{key}"):
self.handle_bookmark()
elif getattr(starpilot_toggles, f"force_coast_via_{key}"):
self.force_coast = not self.force_coast
elif getattr(starpilot_toggles, f"pause_lateral_via_{key}"):
@@ -59,6 +64,10 @@ class StarPilotCard:
elif sm["carControl"].longActive and getattr(starpilot_toggles, f"traffic_mode_via_{key}"):
self.traffic_mode_enabled = not self.traffic_mode_enabled
def handle_bookmark(self):
msg = messaging.new_message("userBookmark", valid=True)
self.pm.send("userBookmark", msg)
def handle_experimental_mode(self, sm, starpilot_toggles):
if getattr(starpilot_toggles, "safe_mode", False):
return
@@ -2258,6 +2258,10 @@
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
},
@@ -2299,6 +2303,10 @@
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
},
@@ -2340,6 +2348,10 @@
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
},
@@ -2381,6 +2393,280 @@
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
},
{
"key": "ModeButtonControl",
"label": "Mode Button (Short Press)",
"description": "Action performed when the \"Mode\" button is pressed. Hyundai CAN-FD only.",
"data_type": "int",
"ui_type": "dropdown",
"options": [
{
"value": 0,
"label": "No Action"
},
{
"value": 1,
"label": "Change Personality"
},
{
"value": 2,
"label": "Force Coast"
},
{
"value": 3,
"label": "Pause Steering"
},
{
"value": 4,
"label": "Pause Accel/Brake"
},
{
"value": 5,
"label": "Toggle Experimental"
},
{
"value": 6,
"label": "Toggle Traffic"
},
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
},
{
"key": "LongModeButtonControl",
"label": "Mode Button (Long Press)",
"description": "Action performed when the \"Mode\" button is pressed for more than 0.5 seconds. Hyundai CAN-FD only.",
"data_type": "int",
"ui_type": "dropdown",
"options": [
{
"value": 0,
"label": "No Action"
},
{
"value": 1,
"label": "Change Personality"
},
{
"value": 2,
"label": "Force Coast"
},
{
"value": 3,
"label": "Pause Steering"
},
{
"value": 4,
"label": "Pause Accel/Brake"
},
{
"value": 5,
"label": "Toggle Experimental"
},
{
"value": 6,
"label": "Toggle Traffic"
},
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
},
{
"key": "VeryLongModeButtonControl",
"label": "Mode Button (Extra Long Press)",
"description": "Action performed when the \"Mode\" button is pressed for more than 2.5 seconds. Hyundai CAN-FD only.",
"data_type": "int",
"ui_type": "dropdown",
"options": [
{
"value": 0,
"label": "No Action"
},
{
"value": 1,
"label": "Change Personality"
},
{
"value": 2,
"label": "Force Coast"
},
{
"value": 3,
"label": "Pause Steering"
},
{
"value": 4,
"label": "Pause Accel/Brake"
},
{
"value": 5,
"label": "Toggle Experimental"
},
{
"value": 6,
"label": "Toggle Traffic"
},
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
},
{
"key": "StarButtonControl",
"label": "Star Button (Short Press)",
"description": "Action performed when the \"Star\" button is pressed. Hyundai CAN-FD only.",
"data_type": "int",
"ui_type": "dropdown",
"options": [
{
"value": 0,
"label": "No Action"
},
{
"value": 1,
"label": "Change Personality"
},
{
"value": 2,
"label": "Force Coast"
},
{
"value": 3,
"label": "Pause Steering"
},
{
"value": 4,
"label": "Pause Accel/Brake"
},
{
"value": 5,
"label": "Toggle Experimental"
},
{
"value": 6,
"label": "Toggle Traffic"
},
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
},
{
"key": "LongStarButtonControl",
"label": "Star Button (Long Press)",
"description": "Action performed when the \"Star\" button is pressed for more than 0.5 seconds. Hyundai CAN-FD only.",
"data_type": "int",
"ui_type": "dropdown",
"options": [
{
"value": 0,
"label": "No Action"
},
{
"value": 1,
"label": "Change Personality"
},
{
"value": 2,
"label": "Force Coast"
},
{
"value": 3,
"label": "Pause Steering"
},
{
"value": 4,
"label": "Pause Accel/Brake"
},
{
"value": 5,
"label": "Toggle Experimental"
},
{
"value": 6,
"label": "Toggle Traffic"
},
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
},
{
"key": "VeryLongStarButtonControl",
"label": "Star Button (Extra Long Press)",
"description": "Action performed when the \"Star\" button is pressed for more than 2.5 seconds. Hyundai CAN-FD only.",
"data_type": "int",
"ui_type": "dropdown",
"options": [
{
"value": 0,
"label": "No Action"
},
{
"value": 1,
"label": "Change Personality"
},
{
"value": 2,
"label": "Force Coast"
},
{
"value": 3,
"label": "Pause Steering"
},
{
"value": 4,
"label": "Pause Accel/Brake"
},
{
"value": 5,
"label": "Toggle Experimental"
},
{
"value": 6,
"label": "Toggle Traffic"
},
{
"value": 7,
"label": "Toggle Switchback"
},
{
"value": 8,
"label": "Create Bookmark"
}
]
}
@@ -7,6 +7,7 @@ QMap<int, QString> getWheelFunctionsMap() {
{0, QObject::tr("No Action")},
{3, QObject::tr("Pause Steering")},
{7, QObject::tr("Toggle \"Switchback Mode\" On/Off")},
{8, QObject::tr("Create Bookmark")},
};
}