|
|
|
@ -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); |
|
|
|
|