|
|
|
@ -3,6 +3,7 @@ |
|
|
|
|
#include "selfdrive/ui/qt/offroad/developer_panel.h" |
|
|
|
|
#include "selfdrive/ui/qt/widgets/ssh_keys.h" |
|
|
|
|
#include "selfdrive/ui/qt/widgets/controls.h" |
|
|
|
|
#include "common/util.h" |
|
|
|
|
|
|
|
|
|
DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : ListWidget(parent) { |
|
|
|
|
// SSH keys
|
|
|
|
@ -24,13 +25,32 @@ DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : ListWidget(parent) { |
|
|
|
|
addItem(longManeuverToggle); |
|
|
|
|
|
|
|
|
|
// Joystick and longitudinal maneuvers should be hidden on release branches
|
|
|
|
|
// also the toggles should be not available to change in onroad state
|
|
|
|
|
const bool is_release = params.getBool("IsReleaseBranch"); |
|
|
|
|
QObject::connect(uiState(), &UIState::offroadTransition, [=](bool offroad) { |
|
|
|
|
for (auto btn : findChildren<ParamControl *>()) { |
|
|
|
|
btn->setVisible(!is_release); |
|
|
|
|
btn->setEnabled(offroad); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
is_release = params.getBool("IsReleaseBranch"); |
|
|
|
|
|
|
|
|
|
// Toggles should be not available to change in onroad state
|
|
|
|
|
QObject::connect(uiState(), &UIState::offroadTransition, this, &DeveloperPanel::updateToggles); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void DeveloperPanel::updateToggles(bool _offroad) { |
|
|
|
|
for (auto btn : findChildren<ParamControl *>()) { |
|
|
|
|
btn->setVisible(!is_release); |
|
|
|
|
btn->setEnabled(_offroad); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// longManeuverToggle should not be toggleable if the car don't have longitudinal control
|
|
|
|
|
auto cp_bytes = params.get("CarParamsPersistent"); |
|
|
|
|
if (!cp_bytes.empty()) { |
|
|
|
|
AlignedBuffer aligned_buf; |
|
|
|
|
capnp::FlatArrayMessageReader cmsg(aligned_buf.align(cp_bytes.data(), cp_bytes.size())); |
|
|
|
|
cereal::CarParams::Reader CP = cmsg.getRoot<cereal::CarParams>(); |
|
|
|
|
longManeuverToggle->setEnabled(hasLongitudinalControl(CP) && _offroad); |
|
|
|
|
} else { |
|
|
|
|
longManeuverToggle->setEnabled(false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
offroad = _offroad; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void DeveloperPanel::showEvent(QShowEvent *event) { |
|
|
|
|
updateToggles(offroad); |
|
|
|
|
} |
|
|
|
|