This commit is contained in:
Your Name
2024-06-17 12:14:25 -05:00
parent a2cf02ea37
commit 5e80ad8d05
2 changed files with 543 additions and 42 deletions

View File

@@ -52,10 +52,6 @@ def frogpilot_boot_functions(frogpilot_functions):
print(f"An unexpected error occurred: {e}")
def manager_init(frogpilot_functions) -> None:
timestamp = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
log_dir = f"/data/log2/{timestamp}"
os.makedirs(log_dir, exist_ok=True)
frogpilot_boot = threading.Thread(target=frogpilot_boot_functions, args=(frogpilot_functions,))
frogpilot_boot.start()
@@ -69,6 +65,10 @@ def manager_init(frogpilot_functions) -> None:
if is_release_branch():
params.clear_all(ParamKeyType.DEVELOPMENT_ONLY)
if not params.get_bool("CameraViewReset"):
params.remove("CameraView")
params.put_bool("CameraViewReset", True)
default_params: list[tuple[str, str | bytes]] = [
("CarParamsPersistent", ""),
("CompletedTrainingVersion", "0"),
@@ -153,6 +153,9 @@ def manager_init(frogpilot_functions) -> None:
("ForceFingerprint", "0"),
("ForceMPHDashboard", "0"),
("FPSCounter", "0"),
("FrogPilotDrives", "0"),
("FrogPilotKilometers", "0"),
("FrogPilotMinutes", "0"),
("FrogsGoMooTune", "1"),
("FullMap", "0"),
("GasRegenCmd", "0"),
@@ -173,7 +176,7 @@ def manager_init(frogpilot_functions) -> None:
("IncreaseThermalLimits", "0"),
("LaneChangeTime", "0"),
("LaneDetectionWidth", "60"),
("LaneLinesWidth", "2"),
("LaneLinesWidth", "4"),
("LateralTune", "1"),
("LeadDepartingAlert", "0"),
("LeadDetectionThreshold", "35"),
@@ -183,14 +186,6 @@ def manager_init(frogpilot_functions) -> None:
("LongPitch", "1"),
("LoudBlindspotAlert", "0"),
("LowVoltageShutdown", "11.8"),
("kiV1", "0.60"),
("kiV2", "0.45"),
("kiV3", "0.30"),
("kiV4", "0.15"),
("kpV1", "1.50"),
("kpV2", "1.00"),
("kpV3", "0.75"),
("kpV4", "0.50"),
("MapsSelected", ""),
("MapboxPublicKey", ""),
("MapboxSecretKey", ""),
@@ -281,7 +276,6 @@ def manager_init(frogpilot_functions) -> None:
("TrafficFollow", "0.5"),
("TrafficJerk", "1"),
("TrafficMode", "0"),
("Tuning", "1"),
("TurnAggressiveness", "100"),
("TurnDesires", "0"),
("UnlimitedLength", "1"),
@@ -345,21 +339,19 @@ def manager_init(frogpilot_functions) -> None:
os.environ['CLEAN'] = '1'
# init logging
# sentry.init(sentry.SentryProject.SELFDRIVE)
# cloudlog.bind_global(dongle_id=dongle_id,
# version=get_version(),
# origin=get_normalized_origin(),
# branch=get_short_branch(),
# commit=get_commit(),
# dirty=is_dirty(),
# device=HARDWARE.get_device_type())
sentry.init(sentry.SentryProject.SELFDRIVE)
cloudlog.bind_global(dongle_id=dongle_id,
version=get_version(),
origin=get_normalized_origin(),
branch=get_short_branch(),
commit=get_commit(),
dirty=is_dirty(),
device=HARDWARE.get_device_type())
# preimport all processes
for p in managed_processes.values():
p.prepare()
return log_dir
def manager_cleanup() -> None:
# send signals to kill all procs
@@ -372,11 +364,8 @@ def manager_cleanup() -> None:
cloudlog.info("everything is dead")
last_running = ""
def manager_thread(frogpilot_functions, log_dir) -> None:
global last_running
def manager_thread(frogpilot_functions) -> None:
cloudlog.bind(daemon="manager")
cloudlog.info("manager start")
cloudlog.info({"environ": os.environ})
@@ -395,7 +384,7 @@ def manager_thread(frogpilot_functions, log_dir) -> None:
pm = messaging.PubMaster(['managerState'])
write_onroad_params(False, params)
ensure_running(managed_processes.values(), False, params=params, CP=sm['carParams'], not_run=ignore, log_dir=log_dir)
ensure_running(managed_processes.values(), False, params=params, CP=sm['carParams'], not_run=ignore)
started_prev = False
@@ -424,16 +413,12 @@ def manager_thread(frogpilot_functions, log_dir) -> None:
started_prev = started
ensure_running(managed_processes.values(), started, params=params, CP=sm['carParams'], not_run=ignore, log_dir=log_dir)
ensure_running(managed_processes.values(), started, params=params, CP=sm['carParams'], not_run=ignore)
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)
# clearpilot
if (running != last_running):
print(running)
cloudlog.debug(running)
last_running = running
print(running)
cloudlog.debug(running)
# send managerState
msg = messaging.new_message('managerState', valid=True)
@@ -442,7 +427,7 @@ def manager_thread(frogpilot_functions, log_dir) -> None:
# Exit main loop when uninstall/shutdown/reboot is needed
shutdown = False
for param in ("DoUninstall", "DoShutdown", "DoReboot", "DoSoftReboot"):
for param in ("DoUninstall", "DoShutdown", "DoReboot"):
if params.get_bool(param):
shutdown = True
params.put("LastManagerExitReason", f"{param} {datetime.datetime.now()}")
@@ -461,7 +446,7 @@ def main() -> None:
print(f"Failed to setup FrogPilot. Error: {e}")
return
log_dir = manager_init(frogpilot_functions)
manager_init(frogpilot_functions)
if os.getenv("PREPAREONLY") is not None:
return
@@ -469,7 +454,7 @@ def main() -> None:
signal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(1))
try:
manager_thread(frogpilot_functions, log_dir)
manager_thread(frogpilot_functions)
except Exception:
traceback.print_exc()
sentry.capture_exception()
@@ -483,9 +468,6 @@ def main() -> None:
elif params.get_bool("DoReboot"):
cloudlog.warning("reboot")
HARDWARE.reboot()
elif params.get_bool("DoSoftReboot"):
cloudlog.warning("softreboot")
HARDWARE.soft_reboot()
elif params.get_bool("DoShutdown"):
cloudlog.warning("shutdown")
HARDWARE.shutdown()