45 lines
2.0 KiB
C
45 lines
2.0 KiB
C
#include "params.h"
|
|
#include "can-halal.h"
|
|
#include "vehicle.h"
|
|
|
|
ParamConfig params[] = {
|
|
[PF_SpeedLimit] = {.value = 70, .min_value = 0, .max_value = 100, .step_value = 1, .display_factor = 1.0},
|
|
[PF_TorqueLimit] = {.value = 1400, .min_value = 0, .max_value = 1500, .step_value = 50, .display_factor = 1.0},
|
|
[PF_PowerLimit] = {.value = 20, .min_value = 0, .max_value = 80, .step_value = 1, .display_factor = 1.0},
|
|
[PF_Discipline] = {.value = 0, .min_value = 0, .max_value = 3, .step_value = 1, .display_factor = 1.0}, // TODO text
|
|
[PF_TorqueVectoringOn] = {.value = 1, .min_value = 0, .max_value = 1, .step_value = 1, .display_factor = 1.0},
|
|
[PF_TractionControlOn] = {.value = 1, .min_value = 0, .max_value = 1, .step_value = 1, .display_factor = 1.0},
|
|
[PF_Rekuperation] = {.value = 1, .min_value = 0, .max_value = 1, .step_value = 1, .display_factor = 1.0},
|
|
[PF_TractionControlP] = {.value = 20, .min_value = 0, .max_value = 50, .step_value = 1, .display_factor = 0.1},
|
|
[PF_TractionControlI] = {.value = 20, .min_value = 0, .max_value = 50, .step_value = 1, .display_factor = 0.1},
|
|
[PF_TractionControlMuMax] = {.value = 16, .min_value = 0, .max_value = 30, .step_value = 1, .display_factor = 0.1},
|
|
[PF_TractionControlSlipRef] = {.value = 4, .min_value = 0, .max_value = 10, .step_value = 1, .display_factor = 0.1},
|
|
};
|
|
|
|
void params_inc(ParamType param) {
|
|
uint32_t inc_value = params[param].value + params[param].step_value;
|
|
|
|
if (inc_value > params[param].max_value) {
|
|
params[param].value = params[param].max_value;
|
|
} else {
|
|
params[param].value = inc_value;
|
|
}
|
|
}
|
|
|
|
void params_dec(ParamType param) {
|
|
uint32_t dec_value = 0;
|
|
if (params[param].value > params[param].step_value) { // check for potential underflow
|
|
dec_value = params[param].value - params[param].step_value;
|
|
}
|
|
|
|
if (dec_value < params[param].min_value) {
|
|
params[param].value = params[param].min_value;
|
|
} else {
|
|
params[param].value = dec_value;
|
|
}
|
|
}
|
|
|
|
void params_broadcast(ParamType param) { //
|
|
vehicle_broadcast_param(param, params[param].value);
|
|
}
|