uninstall from qt offroad (#19538)

* more offroad

* implement uninstall

* just uninstall for now
old-commit-hash: 8d9be50bcc
commatwo_master
Adeeb Shihadeh 4 years ago committed by GitHub
parent 6371eda194
commit c20cd542eb
  1. 6
      selfdrive/hardware/tici/hardware.py
  2. 33
      selfdrive/ui/qt/offroad/settings.cc

@ -1,5 +1,6 @@
import os import os
import subprocess import subprocess
from pathlib import Path
from cereal import log from cereal import log
from selfdrive.hardware.base import HardwareBase from selfdrive.hardware.base import HardwareBase
@ -46,8 +47,9 @@ class Tici(HardwareBase):
subprocess.check_output(["sudo", "reboot"]) subprocess.check_output(["sudo", "reboot"])
def uninstall(self): def uninstall(self):
# TODO: implement uninstall. reboot to factory reset? Path("/data/__system_reset__").touch()
pass os.sync()
self.reboot()
def get_serial(self): def get_serial(self):
return self.get_cmdline()['androidboot.serialno'] return self.get_cmdline()['androidboot.serialno']

@ -125,33 +125,40 @@ QWidget * device_panel() {
Params params = Params(); Params params = Params();
std::vector<std::pair<std::string, std::string>> labels = { std::vector<std::pair<std::string, std::string>> labels = {
{"Dongle ID", params.get("DongleId", false)}, {"Dongle ID", params.get("DongleId", false)},
//{"Serial Number", "abcdefghijk"},
}; };
for (auto l : labels) { // get serial number
//std::string cmdline = util::read_file("/proc/cmdline");
//auto delim = cmdline.find("serialno=");
//if (delim != std::string::npos) {
// labels.push_back({"Serial", cmdline.substr(delim, cmdline.find(" ", delim))});
//}
for (auto &l : labels) {
QString text = QString::fromStdString(l.first + ": " + l.second); QString text = QString::fromStdString(l.first + ": " + l.second);
device_layout->addWidget(new QLabel(text)); device_layout->addWidget(new QLabel(text));
} }
// TODO: show current calibration values
QPushButton *clear_cal_btn = new QPushButton("Reset Calibration"); QPushButton *clear_cal_btn = new QPushButton("Reset Calibration");
device_layout->addWidget(clear_cal_btn); device_layout->addWidget(clear_cal_btn);
QObject::connect(clear_cal_btn, &QPushButton::released, [=]() { QObject::connect(clear_cal_btn, &QPushButton::released, [=]() {
Params().delete_db_value("CalibrationParams"); Params().delete_db_value("CalibrationParams");
}); });
std::map<std::string, const char *> power_btns = { QPushButton *poweroff_btn = new QPushButton("Power Off");
{"Power Off", "sudo poweroff"}, device_layout->addWidget(poweroff_btn);
{"Reboot", "sudo reboot"}, QPushButton *reboot_btn = new QPushButton("Reboot");
}; device_layout->addWidget(reboot_btn);
for (auto b : power_btns) {
QPushButton *btn = new QPushButton(QString::fromStdString(b.first));
device_layout->addWidget(btn);
#ifdef __aarch64__ #ifdef __aarch64__
QObject::connect(btn, &QPushButton::released, QObject::connect(poweroff_btn, &QPushButton::released, [=]() { std::system("sudo poweroff"); });
[=]() {std::system(b.second);}); QObject::connect(reboot_btn, &QPushButton::released, [=]() { std::system("sudo reboot"); });
#endif #endif
}
// TODO: add confirmation dialog
QPushButton *uninstall_btn = new QPushButton("Uninstall openpilot");
device_layout->addWidget(uninstall_btn);
QObject::connect(uninstall_btn, &QPushButton::released, [=]() { Params().write_db_value("DoUninstall", "1"); });
QWidget *widget = new QWidget; QWidget *widget = new QWidget;
widget->setLayout(device_layout); widget->setLayout(device_layout);

Loading…
Cancel
Save