FrogPilot base

This commit is contained in:
James
2025-12-01 12:00:00 -07:00
parent 4726bdce29
commit 41bf1bd2cb
144 changed files with 1254 additions and 39 deletions
+17 -1
View File
@@ -21,6 +21,8 @@ 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
def manager_init() -> None:
save_bootlog()
@@ -38,6 +40,8 @@ def manager_init() -> None:
if params.get_bool("RecordFrontLock"):
params.put_bool("RecordFront", True)
# FrogPilot variables
# set unset params to their default value
for k in params.all_keys():
default_value = params.get_default_value(k)
@@ -93,6 +97,10 @@ def manager_init() -> None:
for p in managed_processes.values():
p.prepare()
# FrogPilot variables
install_frogpilot()
frogpilot_boot_functions()
def manager_cleanup() -> None:
# send signals to kill all procs
@@ -129,6 +137,8 @@ def manager_thread() -> None:
started_prev = False
ignition_prev = False
# FrogPilot variables
while True:
sm.update(1000)
@@ -136,9 +146,13 @@ def manager_thread() -> None:
if started and not started_prev:
params.clear_all(ParamKeyFlag.CLEAR_ON_ONROAD_TRANSITION)
# FrogPilot variables
elif not started and started_prev:
params.clear_all(ParamKeyFlag.CLEAR_ON_OFFROAD_TRANSITION)
# FrogPilot variables
ignition = any(ps.ignitionLine or ps.ignitionCan for ps in sm['pandaStates'] if ps.pandaType != log.PandaState.PandaType.unknown)
if ignition and not ignition_prev:
params.clear_all(ParamKeyFlag.CLEAR_ON_IGNITION_ON)
@@ -181,6 +195,8 @@ def manager_thread() -> None:
if shutdown:
break
# FrogPilot variables
def main() -> None:
manager_init()
@@ -201,7 +217,7 @@ def main() -> None:
params = Params()
if params.get_bool("DoUninstall"):
cloudlog.warning("uninstalling")
HARDWARE.uninstall()
uninstall_frogpilot()
elif params.get_bool("DoReboot"):
cloudlog.warning("reboot")
HARDWARE.reboot()
+12 -2
View File
@@ -4,7 +4,7 @@ import platform
from cereal import car
from openpilot.common.params import Params
from openpilot.system.hardware import PC, TICI
from openpilot.system.hardware import HARDWARE, PC, TICI
from openpilot.system.manager.process import PythonProcess, NativeProcess, DaemonProcess
WEBCAM = os.getenv("USE_WEBCAM") is not None
@@ -61,6 +61,8 @@ def or_(*fns):
def and_(*fns):
return lambda *args: operator.and_(*(fn(*args) for fn in fns))
# FrogPilot variables
procs = [
DaemonProcess("manage_athenad", "system.athena.manage_athenad", "AthenadPid"),
@@ -80,7 +82,6 @@ procs = [
PythonProcess("dmonitoringmodeld", "selfdrive.modeld.dmonitoringmodeld", driverview, enabled=(WEBCAM or not PC)),
PythonProcess("sensord", "system.sensord.sensord", only_onroad, enabled=not PC),
NativeProcess("ui", "selfdrive/ui", ["./ui"], always_run, watchdog_max_dt=(5 if not PC else None)),
PythonProcess("soundd", "selfdrive.ui.soundd", driverview),
PythonProcess("locationd", "selfdrive.locationd.locationd", only_onroad),
NativeProcess("_pandad", "selfdrive/pandad", ["./pandad"], always_run, enabled=False),
@@ -115,4 +116,13 @@ procs = [
PythonProcess("joystick", "tools.joystick.joystick_control", and_(joystick, iscar)),
]
# FrogPilot variables
if HARDWARE.get_device_type() == "mici":
procs.append(PythonProcess("ui", "selfdrive.ui.ui", always_run))
elif TICI:
procs.append(NativeProcess("ui", "selfdrive/ui", ["./ui"], always_run, watchdog_max_dt=5)),
procs += [
PythonProcess("frogpilot_process", "frogpilot.frogpilot_process", always_run),
]
managed_processes = {p.name: p for p in procs}