uninstall from qt offroad (#19538)

* more offroad

* implement uninstall

* just uninstall for now
albatross
Adeeb Shihadeh 2020-12-18 23:06:40 -08:00 committed by GitHub
parent 069189fd7f
commit 8d9be50bcc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 15 deletions

View File

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

View File

@ -125,33 +125,40 @@ QWidget * device_panel() {
Params params = Params();
std::vector<std::pair<std::string, std::string>> labels = {
{"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);
device_layout->addWidget(new QLabel(text));
}
// TODO: show current calibration values
QPushButton *clear_cal_btn = new QPushButton("Reset Calibration");
device_layout->addWidget(clear_cal_btn);
QObject::connect(clear_cal_btn, &QPushButton::released, [=]() {
Params().delete_db_value("CalibrationParams");
});
std::map<std::string, const char *> power_btns = {
{"Power Off", "sudo poweroff"},
{"Reboot", "sudo reboot"},
};
for (auto b : power_btns) {
QPushButton *btn = new QPushButton(QString::fromStdString(b.first));
device_layout->addWidget(btn);
QPushButton *poweroff_btn = new QPushButton("Power Off");
device_layout->addWidget(poweroff_btn);
QPushButton *reboot_btn = new QPushButton("Reboot");
device_layout->addWidget(reboot_btn);
#ifdef __aarch64__
QObject::connect(btn, &QPushButton::released,
[=]() {std::system(b.second);});
QObject::connect(poweroff_btn, &QPushButton::released, [=]() { std::system("sudo poweroff"); });
QObject::connect(reboot_btn, &QPushButton::released, [=]() { std::system("sudo reboot"); });
#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;
widget->setLayout(device_layout);