Skip to content

Commit

Permalink
update bal status + general fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
gmazzucchi committed Aug 18, 2023
1 parent 4ed9603 commit 8c86622
Show file tree
Hide file tree
Showing 10 changed files with 114 additions and 63 deletions.
12 changes: 6 additions & 6 deletions Core/Src/inputs/inputs.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ void buttons_pressed_actions(uint8_t button) {
send_bal(true);
display_notification("BAL ON", 3000);
} else {
power_map_last_state += 2.0f;
power_map_last_state += 1.0f;
power_map_last_state = fmin((float)power_map_last_state, 100.0f);
power_map_last_state = fmax((float)power_map_last_state, -10.0f);
power_map_last_state = fmax((float)power_map_last_state, 0.0f);
manettino_send_power_map((float)power_map_last_state / 100.0f);
}
break;
Expand All @@ -150,9 +150,9 @@ void buttons_pressed_actions(uint8_t button) {
send_bal(false);
display_notification("BAL OFF", 3000);
} else {
power_map_last_state -= 2.0f;
power_map_last_state -= 1.0f;
power_map_last_state = fmin((float)power_map_last_state, 100.0f);
power_map_last_state = fmax((float)power_map_last_state, -10.0f);
power_map_last_state = fmax((float)power_map_last_state, 0.0f);
manettino_send_power_map((float)power_map_last_state / 100.0f);
}
break;
Expand Down Expand Up @@ -328,15 +328,15 @@ void manettini_actions(uint8_t value, uint8_t manettino) {
if (!engineer_mode) {
power_map_last_state += ((float)dstep * 10.0f);
power_map_last_state = fmin((float)power_map_last_state, 100.0f);
power_map_last_state = fmax((float)power_map_last_state, -10.0f);
power_map_last_state = fmax((float)power_map_last_state, 0.0f);
manettino_send_power_map((float)power_map_last_state / 100.0f);
} else {
// pork cooling
hv_fans_override_last_state += ((float)dstep * 10.0f);
hv_fans_override_last_state =
fmin((float)hv_fans_override_last_state, 100.0f);
hv_fans_override_last_state =
fmax((float)hv_fans_override_last_state, -10.0f);
fmax((float)hv_fans_override_last_state, 0.0f);
send_pork_fans_status((float)hv_fans_override_last_state / 100.0f);
}
break;
Expand Down
6 changes: 6 additions & 0 deletions Core/UI/steering/can_messages.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,12 @@ void handle_primary(can_message_t *msg) {
hv_errors_update(&converted);
break;
}
case PRIMARY_HV_CELL_BALANCING_STATUS_FRAME_ID: {
STEER_CAN_UNPACK(primary, PRIMARY, hv_cell_balancing_status,
HV_CELL_BALANCING_STATUS);
hv_cell_balancing_status_update(&converted);
break;
}
case PRIMARY_HV_FEEDBACKS_STATUS_FRAME_ID: {
STEER_CAN_UNPACK(primary, PRIMARY, hv_feedbacks_status,
HV_FEEDBACKS_STATUS);
Expand Down
13 changes: 6 additions & 7 deletions Core/UI/steering/engineer_mode/tab_balancing_status.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
extern steering_tabs_t steering;
lv_style_t bal_status_style;

lv_obj_t* bal_status_label;
lv_obj_t *bal_status_label;

void set_bal_status_label_text(char* text) {
void set_bal_status_label_text(char *text) {
lv_label_set_text(bal_status_label, text);
}

Expand All @@ -18,7 +18,7 @@ void init_balancing_status_styles() {
lv_style_set_align(&bal_status_style, LV_ALIGN_CENTER);
}

void tab_balancing_status_screen_create(lv_obj_t * parent) {
void tab_balancing_status_screen_create(lv_obj_t *parent) {
init_balancing_status_styles();

lv_obj_t *bal_status_tab_background = lv_obj_create(parent);
Expand All @@ -28,10 +28,9 @@ void tab_balancing_status_screen_create(lv_obj_t * parent) {

bal_status_label = lv_label_create(bal_status_tab_background);

lv_obj_add_style(bal_status_label, &bal_status_style,
LV_PART_MAIN);
lv_obj_set_style_text_font(bal_status_label,
&lv_font_inter_bold_38, LV_PART_MAIN);
lv_obj_add_style(bal_status_label, &bal_status_style, LV_PART_MAIN);
lv_obj_set_style_text_font(bal_status_label, &lv_font_inter_bold_38,
LV_PART_MAIN);
lv_label_set_text(bal_status_label, "BAL STATUS: UNKNOWN");
lv_obj_align(bal_status_label, LV_ALIGN_CENTER, 0, 0);
}
2 changes: 1 addition & 1 deletion Core/UI/steering/engineer_mode/tab_balancing_status.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
#include "steering.h"
#include "utils.h"

void tab_balancing_status_screen_create(lv_obj_t * parent);
void tab_balancing_status_screen_create(lv_obj_t *parent);

#endif // TAB_BALANCING_STATUS_H
12 changes: 6 additions & 6 deletions Core/UI/steering/engineer_mode/tab_engineer_mode.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ void tab_engineer_screen_create(lv_obj_t *parent) {
0, 1);

lv_obj_t *cs_l5 = lv_label_create(cont);
lv_label_set_text(
cs_l5, "racing tabs" SPACING "Cambio di tab" SPACING
"Cambio a modalita' engineer" SPACING "Cambio tab errori" SPACING
"PTT" SPACING "Accendere/Spegnere Telemetry" SPACING
"Aumenta mappa di 2" SPACING
"Diminuisce mappa di 2" SPACING "SEND CAR STATUS");
lv_label_set_text(cs_l5, "racing tabs" SPACING "Cambio di tab" SPACING
"Cambio a modalita' engineer" SPACING
"Cambio tab errori" SPACING "PTT" SPACING
"Accendere/Spegnere Telemetry" SPACING
"Aumenta mappa di 2" SPACING
"Diminuisce mappa di 2" SPACING "SEND CAR STATUS");
lv_obj_add_style(cs_l5, &engineer_label_style, 0);
lv_obj_set_grid_cell(cs_l5, LV_GRID_ALIGN_CENTER, 1, 1, LV_GRID_ALIGN_CENTER,
0, 1);
Expand Down
34 changes: 17 additions & 17 deletions Core/UI/steering/engineer_mode/tab_shutdown_circuit.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,23 @@ lv_style_t tab_shutdown_circuit_style;
lv_obj_t *tab_shutdown_circuit_labels[SHUTDOWN_CIRCUIT_ROWS][2];

char shutdown_circuit_strings[SHUTDOWN_COMPONENT_SIZE][BUFSIZ] = {
"sd_start_index",
"feedbacks_status_feedback_sd_in_index",
"feedbacks_status_feedback_sd_out_index",
"feedbacks_interlock_fb_index",
"ecu_feedbacks_sd_in_index",
"ecu_feedbacks_sd_cock_fb_index",
"ecu_feedbacks_sd_interial_fb_index",
"ecu_feedbacks_sd_bots_fb_index",
"feedbacks_invc_lid_fb_index",
"feedbacks_hvd_fb_index",
"feedbacks_bspd_fb_index",
"feedbacks_invc_interlock_fb_index",
"sd_end_index",
"feedbacks_status_feedback_sd_end_index",
"feedbacks_status_feedback_precharge_status_index",
"feedbacks_status_feedback_airp_gate_index",
"feedbacks_status_feedback_airn_gate_index",
"sd_start",
"feedbacks_status_feedback_sd_in",
"feedbacks_status_feedback_sd_out",
"feedbacks_interlock_fb",
"ecu_feedbacks_sd_in",
"ecu_feedbacks_sd_cock_fb",
"ecu_feedbacks_sd_interial_fb",
"ecu_feedbacks_sd_bots_fb",
"feedbacks_invc_lid_fb",
"feedbacks_hvd_fb",
"feedbacks_bspd_fb",
"feedbacks_invc_interlock_fb",
"sd_end",
"feedbacks_status_feedback_sd_end",
"feedbacks_status_feedback_precharge_status",
"feedbacks_status_feedback_airp_gate",
"feedbacks_status_feedback_airn_gate",
};

shutdown_component_state_t
Expand Down
93 changes: 68 additions & 25 deletions Core/UI/steering/steering.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ primary_cooling_status_converted_t cooling_status_last_state = {0};
primary_hv_fans_override_status_converted_t hv_fans_override_status_last_state =
{0};
primary_lv_feedbacks_converted_t lv_feedbacks_last_state = {0};
primary_hv_cell_balancing_status_converted_t
hv_cell_balancing_status_last_state = {0};

secondary_steering_angle_converted_t steering_angle_converted = {0};
secondary_pedals_output_converted_t pedals_output_last_state = {0};
Expand Down Expand Up @@ -270,22 +272,65 @@ void hv_errors_update(primary_hv_errors_converted_t *data) {
STEER_ERROR_UPDATE(hv_errors, errors_eeprom_write, 15)
}

#define N_PORK_CELLBOARD 6
bool cellboard_bal[N_PORK_CELLBOARD] = {0};

void set_bal_status_label_text(char *text);

void hv_cell_balancing_status_update(
primary_hv_cell_balancing_status_converted_t *data) {
uint8_t cellboard_id = (uint8_t)data->cellboard_id;
if (cellboard_id < 0 || cellboard_id >= N_PORK_CELLBOARD) {
return;
}
primary_hv_cell_balancing_status_balancing_status status =
data->balancing_status;
cellboard_bal[cellboard_id] =
status == primary_hv_cell_balancing_status_balancing_status_OFF ? false
: true;
bool is_bal = false;
for (uint8_t i = 0; i < N_PORK_CELLBOARD; i++) {
if (cellboard_bal[i]) {
is_bal = true;
break;
}
}
char buf[BUFSIZ] = {0};
sprintf(buf, "BAL STATUS: %s", is_bal ? "ON" : "OFF");
set_bal_status_label_text(buf);
}

void hv_feedbacks_status_update(primary_hv_feedbacks_status_converted_t *data) {
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_implausibility_detected, 0)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_imd_cockpit, 1)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_tsal_green_fault_latched, 2)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_bms_cockpit, 3)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_ext_latched, 4)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_tsal_green, 5)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_ts_over_60v_status, 6)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_airn_status, 7)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_airp_status, 8)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_airp_gate, 9)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_airn_gate, 10)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_precharge_status, 11)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_tsp_over_60v_status, 12)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_imd_fault, 13)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_check_mux, 14)
STEER_ERROR_UPDATE(hv_feedbacks_status,
feedbacks_status_feedback_implausibility_detected, 0)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_imd_cockpit,
1)
STEER_ERROR_UPDATE(hv_feedbacks_status,
feedbacks_status_feedback_tsal_green_fault_latched, 2)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_bms_cockpit,
3)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_ext_latched,
4)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_tsal_green,
5)
STEER_ERROR_UPDATE(hv_feedbacks_status,
feedbacks_status_feedback_ts_over_60v_status, 6)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_airn_status,
7)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_airp_status,
8)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_airp_gate,
9)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_airn_gate,
10)
STEER_ERROR_UPDATE(hv_feedbacks_status,
feedbacks_status_feedback_precharge_status, 11)
STEER_ERROR_UPDATE(hv_feedbacks_status,
feedbacks_status_feedback_tsp_over_60v_status, 12)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_imd_fault,
13)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_check_mux,
14)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_sd_end, 15)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_sd_out, 16)
STEER_ERROR_UPDATE(hv_feedbacks_status, feedbacks_status_feedback_sd_in, 17)
Expand Down Expand Up @@ -683,10 +728,10 @@ void update_sensors_extra_value(const char *buf, uint8_t extra_value) {
}

typedef enum {
ptt_status_OFF = 0,
ptt_status_SET_ON = 1,
ptt_status_ON = 2,
ptt_status_SET_OFF = 3,
ptt_status_OFF = 0,
ptt_status_SET_ON = 1,
ptt_status_ON = 2,
ptt_status_SET_OFF = 3,
} ptt_status_t;

bool ecu_ack = false;
Expand All @@ -695,10 +740,8 @@ ptt_status_t ptt_status = ptt_status_OFF;

#include "can_messages.h"

void set_ptt_button_pressed(bool val) {
ptt_button_pressed = val;
}

void set_ptt_button_pressed(bool val) { ptt_button_pressed = val; }

void ptt_tasks_fn(lv_timer_t *timer) {
if (!ecu_ack && ptt_button_pressed) {
ptt_status = ptt_status_SET_ON;
Expand All @@ -714,10 +757,10 @@ void ptt_tasks_fn(lv_timer_t *timer) {
STEER_CAN_PACK(primary, PRIMARY, set_ptt_status, SET_PTT_STATUS);
can_send(&msg, true);
update_sensors_extra_value("SOF", 0);
} else if(ecu_ack && ptt_button_pressed) {
} else if (ecu_ack && ptt_button_pressed) {
ptt_status = ptt_status_ON;
update_sensors_extra_value("ON", 0);
} else if(!ecu_ack && !ptt_button_pressed) {
} else if (!ecu_ack && !ptt_button_pressed) {
ptt_status = ptt_status_OFF;
update_sensors_extra_value("OFF", 0);
}
Expand Down
2 changes: 2 additions & 0 deletions Core/UI/steering/steering.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ void hv_voltage_update(primary_hv_voltage_converted_t *);
void hv_current_update(primary_hv_current_converted_t *);
void hv_temp_update(primary_hv_temp_converted_t *);
void hv_errors_update(primary_hv_errors_converted_t *);
void hv_cell_balancing_status_update(
primary_hv_cell_balancing_status_converted_t *);
void hv_feedbacks_status_update(primary_hv_feedbacks_status_converted_t *);
void lv_feedbacks_update(primary_lv_feedbacks_converted_t *);
void das_errors_update(primary_das_errors_converted_t *);
Expand Down
2 changes: 1 addition & 1 deletion Core/UI/steering/tab_manager.h
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#ifndef TAB_MANAGER_H
#define TAB_MANAGER_H

#include "engineer_mode/tab_balancing_status.h"
#include "engineer_mode/tab_cooling.h"
#include "engineer_mode/tab_engineer_mode.h"
#include "engineer_mode/tab_fatal_error.h"
#include "engineer_mode/tab_primary_cansniffer.h"
#include "engineer_mode/tab_secondary_cansniffer.h"
#include "engineer_mode/tab_shutdown_circuit.h"
#include "engineer_mode/tab_balancing_status.h"
#include "engineer_mode/tab_terminal.h"
#include "lvgl.h"
#include "racing_tabs/tab_calibration.h"
Expand Down
1 change: 1 addition & 0 deletions STM32Make.make
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ Core/Src/watchdog.c \
Core/UI/steering/can_messages.c \
Core/UI/steering/cansniffer.c \
Core/UI/steering/controls.c \
Core/UI/steering/engineer_mode/tab_balancing_status.c \
Core/UI/steering/engineer_mode/tab_cooling.c \
Core/UI/steering/engineer_mode/tab_engineer_mode.c \
Core/UI/steering/engineer_mode/tab_fatal_error.c \
Expand Down

0 comments on commit 8c86622

Please sign in to comment.