mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-08-21 00:03:45 +08:00
Show Driver Camera When In Reverse
This commit is contained in:
@@ -56,4 +56,5 @@ void FrogPilotUIState::update() {
|
||||
update_state(this);
|
||||
|
||||
frogpilot_scene.conditional_status = frogpilot_scene.enabled ? params_memory.getInt("CEStatus") : 0;
|
||||
frogpilot_scene.driver_camera_timer = frogpilot_scene.reverse && frogpilot_scene.frogpilot_toggles.value("driver_camera_in_reverse").toBool() ? frogpilot_scene.driver_camera_timer + 1 : 0;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ struct FrogPilotUIScene {
|
||||
bool standstill;
|
||||
|
||||
int conditional_status;
|
||||
int driver_camera_timer;
|
||||
int started_timer;
|
||||
|
||||
QJsonObject frogpilot_toggles;
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
import cereal.messaging as messaging
|
||||
from opendbc.car import structs
|
||||
from openpilot.common.params import Params
|
||||
from openpilot.common.realtime import config_realtime_process
|
||||
from openpilot.selfdrive.monitoring.helpers import DriverMonitoring
|
||||
|
||||
GearShifter = structs.CarState.GearShifter
|
||||
|
||||
|
||||
def dmonitoringd_thread():
|
||||
config_realtime_process([0, 1, 2, 3], 5)
|
||||
@@ -43,7 +46,7 @@ def dmonitoringd_thread():
|
||||
# load live always-on toggle
|
||||
if sm['driverStateV2'].frameId % 40 == 1:
|
||||
DM.always_on = params.get_bool("AlwaysOnDM")
|
||||
demo_mode = params.get_bool("IsDriverViewEnabled")
|
||||
demo_mode = params.get_bool("IsDriverViewEnabled") and sm["carState"].gearShifter != GearShifter.reverse
|
||||
|
||||
# save rhd virtual toggle every 5 mins
|
||||
if (sm['driverStateV2'].frameId % 6000 == 0 and not demo_mode and
|
||||
|
||||
+15
-4
@@ -70,9 +70,18 @@ void HomeWindow::updateState(const UIState &s, const FrogPilotUIState &fs) {
|
||||
const QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles;
|
||||
|
||||
if (s.scene.started) {
|
||||
developer_sidebar->setVisible(frogpilot_toggles.value("developer_sidebar").toBool());
|
||||
if (frogpilot_scene.driver_camera_timer >= UI_FREQ / 2) {
|
||||
showDriverView(true, true);
|
||||
} else {
|
||||
if (driver_view->isVisible()) {
|
||||
sidebar->setVisible(params.getBool("Sidebar") || frogpilot_toggles.value("debug_mode").toBool());
|
||||
slayout->setCurrentWidget(onroad);
|
||||
}
|
||||
|
||||
frogpilotUIState()->frogpilot_scene.sidebars_open = developer_sidebar->isVisible() && sidebar->isVisible();
|
||||
developer_sidebar->setVisible(frogpilot_toggles.value("developer_sidebar").toBool());
|
||||
|
||||
frogpilotUIState()->frogpilot_scene.sidebars_open = developer_sidebar->isVisible() && sidebar->isVisible();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,9 +103,11 @@ void HomeWindow::offroadTransition(bool offroad) {
|
||||
}
|
||||
}
|
||||
|
||||
void HomeWindow::showDriverView(bool show) {
|
||||
void HomeWindow::showDriverView(bool show, bool started) {
|
||||
if (show) {
|
||||
emit closeSettings();
|
||||
if (!started) {
|
||||
emit closeSettings();
|
||||
}
|
||||
slayout->setCurrentWidget(driver_view);
|
||||
} else {
|
||||
slayout->setCurrentWidget(home);
|
||||
|
||||
@@ -58,7 +58,7 @@ signals:
|
||||
|
||||
public slots:
|
||||
void offroadTransition(bool offroad);
|
||||
void showDriverView(bool show);
|
||||
void showDriverView(bool show, bool started=false);
|
||||
void showSidebar(bool show);
|
||||
|
||||
protected:
|
||||
|
||||
@@ -92,7 +92,7 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event) {
|
||||
case QEvent::MouseButtonPress:
|
||||
case QEvent::MouseMove: {
|
||||
// ignore events when device is awakened by resetInteractiveTimeout
|
||||
ignore = !device()->isAwake();
|
||||
ignore = !device()->isAwake() || frogpilot_scene.driver_camera_timer >= UI_FREQ / 2;
|
||||
device()->resetInteractiveTimeout(frogpilot_toggles.value("screen_timeout").toInt(), frogpilot_toggles.value("screen_timeout_onroad").toInt());
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user