diff --git a/common/params_pyx.pyx b/common/params_pyx.pyx index cae66468a..4f28881ce 100755 --- a/common/params_pyx.pyx +++ b/common/params_pyx.pyx @@ -55,6 +55,7 @@ keys = { b"PandaDongleId": [TxType.CLEAR_ON_MANAGER_START, TxType.CLEAR_ON_PANDA_DISCONNECT], b"Passive": [TxType.PERSISTENT], b"RecordFront": [TxType.PERSISTENT], + b"RecordFrontLock": [TxType.PERSISTENT], # for the internal fleet b"ReleaseNotes": [TxType.PERSISTENT], b"ShouldDoUpdate": [TxType.CLEAR_ON_MANAGER_START], b"SubscriberInfo": [TxType.PERSISTENT], diff --git a/selfdrive/manager/manager.py b/selfdrive/manager/manager.py index cf0d768e7..b6afafb91 100755 --- a/selfdrive/manager/manager.py +++ b/selfdrive/manager/manager.py @@ -45,6 +45,9 @@ def manager_init(spinner=None): ("IsDriverViewEnabled", "0"), ] + if params.get("RecordFrontLock", encoding='utf-8') == "1": + params.put("RecordFront", "1") + # set unset params for k, v in default_params: if params.get(k) is None: diff --git a/selfdrive/ui/SConscript b/selfdrive/ui/SConscript index 247d913a2..83b5fe51f 100644 --- a/selfdrive/ui/SConscript +++ b/selfdrive/ui/SConscript @@ -59,6 +59,8 @@ else: for name, branch in installers: d = {'BRANCH': f"'\"{branch}\"'"} if "internal" in name: + d['INTERNAL'] = "1" + import requests r = requests.get("https://github.com/commaci2.keys") r.raise_for_status() diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index 27004abbf..1d86c5b61 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -64,7 +64,7 @@ ParamsToggle::ParamsToggle(QString param, QString title, QString description, QS layout->addWidget(label); // toggle switch - Toggle *toggle = new Toggle(this); + toggle = new Toggle(this); toggle->setFixedSize(150, 100); layout->addWidget(toggle); QObject::connect(toggle, SIGNAL(stateChanged(int)), this, SLOT(checkboxClicked(int))); @@ -104,12 +104,6 @@ QWidget * toggles_panel() { "../assets/offroad/icon_warning.png" )); toggles_list->addWidget(horizontal_line()); - toggles_list->addWidget(new ParamsToggle("RecordFront", - "Record and Upload Driver Camera", - "Upload data from the driver facing camera and help improve the driver monitoring algorithm.", - "../assets/offroad/icon_network.png" - )); - toggles_list->addWidget(horizontal_line()); toggles_list->addWidget(new ParamsToggle("IsRHD", "Enable Right-Hand Drive", "Allow openpilot to obey left-hand traffic conventions and perform driver monitoring on right driver seat.", @@ -128,6 +122,16 @@ QWidget * toggles_panel() { "../assets/offroad/icon_shell.png" )); + ParamsToggle *record_toggle = new ParamsToggle("RecordFront", + "Record and Upload Driver Camera", + "Upload data from the driver facing camera and help improve the driver monitoring algorithm.", + "../assets/offroad/icon_network.png"); + toggles_list->addWidget(horizontal_line()); + toggles_list->addWidget(record_toggle); + + bool record_lock = Params().read_db_bool("RecordFrontLock"); + record_toggle->toggle->setEnabled(!record_lock); + QWidget *widget = new QWidget; widget->setLayout(toggles_list); return widget; diff --git a/selfdrive/ui/qt/offroad/settings.hpp b/selfdrive/ui/qt/offroad/settings.hpp index 81ba92b1a..bd7f41398 100644 --- a/selfdrive/ui/qt/offroad/settings.hpp +++ b/selfdrive/ui/qt/offroad/settings.hpp @@ -7,6 +7,8 @@ #include #include +#include "selfdrive/ui/qt/widgets/toggle.hpp" + // *** settings widgets *** class ParamsToggle : public QFrame { @@ -15,6 +17,7 @@ class ParamsToggle : public QFrame { public: explicit ParamsToggle(QString param, QString title, QString description, QString icon, QWidget *parent = 0); + Toggle *toggle; private: QString param; diff --git a/selfdrive/ui/qt/setup/installer.cc b/selfdrive/ui/qt/setup/installer.cc index 528f96878..bfbc8d08b 100644 --- a/selfdrive/ui/qt/setup/installer.cc +++ b/selfdrive/ui/qt/setup/installer.cc @@ -37,14 +37,19 @@ int fresh_clone() { err = std::system("mv /data/tmppilot /data/openpilot"); if (err) return 1; -#ifdef SSH_KEYS +#ifdef INTERNAL err = std::system("mkdir -p /data/params/d/"); if (err) return 1; std::ofstream param; - param.open("/data/params/d/GithubSshKeys"); - param << SSH_KEYS; + param.open("/data/params/d/RecordFrontLock"); + param << "1"; param.close(); + + std::ofstream keys_param; + keys_param.open("/data/params/d/GithubSshKeys"); + keys_param << SSH_KEYS; + keys_param.close(); #endif return 0;