Modify & transmit params via CAN
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
#include "gui/common/NamedField.hpp"
|
||||
#include "gui/containers/ConfigItem.hpp"
|
||||
#include "main.h"
|
||||
#include "params.h"
|
||||
#include <cstdint>
|
||||
#include <gui/vehicleconfig_screen/VehicleConfigView.hpp>
|
||||
|
||||
@ -8,7 +9,7 @@ VehicleConfigView::VehicleConfigView() : selectedParam{0} {}
|
||||
|
||||
void VehicleConfigView::setupScreen() {
|
||||
VehicleConfigViewBase::setupScreen();
|
||||
params.setNumberOfItems(ParamFieldType_COUNT);
|
||||
params.setNumberOfItems(ParamType_COUNT);
|
||||
}
|
||||
|
||||
void VehicleConfigView::tearDownScreen() {
|
||||
@ -16,31 +17,33 @@ void VehicleConfigView::tearDownScreen() {
|
||||
}
|
||||
|
||||
void VehicleConfigView::paramsUpdateItem(ConfigItem &item, int16_t itemIndex) {
|
||||
item.setType(static_cast<ParamFieldType>(itemIndex));
|
||||
item.setType(static_cast<ParamType>(itemIndex));
|
||||
item.setSelected(itemIndex == selectedParam);
|
||||
}
|
||||
|
||||
void VehicleConfigView::selectPrevParam() {
|
||||
if (selectedParam == 0) {
|
||||
updateSelectedParam(ParamFieldType_COUNT - 1);
|
||||
updateSelectedParam(ParamType_COUNT - 1);
|
||||
} else {
|
||||
updateSelectedParam(selectedParam - 1);
|
||||
}
|
||||
}
|
||||
|
||||
void VehicleConfigView::selectNextParam() {
|
||||
updateSelectedParam((selectedParam + 1) % ParamFieldType_COUNT);
|
||||
updateSelectedParam((selectedParam + 1) % ParamType_COUNT);
|
||||
}
|
||||
|
||||
void VehicleConfigView::decParam() {
|
||||
// TODO: How to handle this for different parameter types?
|
||||
params_dec(static_cast<ParamType>(selectedParam));
|
||||
params.itemChanged(selectedParam);
|
||||
}
|
||||
void VehicleConfigView::incParam() {
|
||||
// TODO: How to handle this for different parameter types?
|
||||
params_inc(static_cast<ParamType>(selectedParam));
|
||||
params.itemChanged(selectedParam);
|
||||
}
|
||||
|
||||
void VehicleConfigView::confirmParam() {
|
||||
// TODO: How to handle this for different parameter types?
|
||||
params_broadcast(static_cast<ParamType>(selectedParam));
|
||||
}
|
||||
|
||||
void VehicleConfigView::updateSelectedParam(int select) {
|
||||
@ -81,7 +84,7 @@ void VehicleConfigView::updateSelectedParam(int select) {
|
||||
}
|
||||
|
||||
int16_t firstWanted;
|
||||
if (selectedParam == 0 && previousSelected == ParamFieldType_COUNT - 1) {
|
||||
if (selectedParam == 0 && previousSelected == ParamType_COUNT - 1) {
|
||||
firstWanted = 0;
|
||||
} else if (selectedParam > previousSelected) {
|
||||
firstWanted = selectedParam - numVisible + 1;
|
||||
@ -90,8 +93,8 @@ void VehicleConfigView::updateSelectedParam(int select) {
|
||||
}
|
||||
if (firstWanted < 0) {
|
||||
firstWanted = 0;
|
||||
} else if (firstWanted > ParamFieldType_COUNT - 1) {
|
||||
firstWanted = ParamFieldType_COUNT - 1;
|
||||
} else if (firstWanted > ParamType_COUNT - 1) {
|
||||
firstWanted = ParamType_COUNT - 1;
|
||||
}
|
||||
params.animateToItem(firstWanted, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user