uninstall from qt offroad (#19538)
* more offroad * implement uninstall * just uninstall for nowalbatross
parent
069189fd7f
commit
8d9be50bcc
|
@ -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']
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue