Add fire alarm support and update firmware version to 1.0.19

- Introduced CONN_ERR_FIRE_ALARM to handle fire alarm conditions in charger control.
- Added CMD_FIRE_ALARM command for external trigger handling in serial control.
- Updated firmware version from 1.0.17 to 1.0.19.
- Integrated fire alarm functionality into the charging loop and command handler.
This commit is contained in:
2026-06-11 15:33:22 +03:00
parent 3037ae2368
commit ac1ce30121
17 changed files with 31668 additions and 31388 deletions
+1
View File
@@ -47,6 +47,7 @@ typedef enum __attribute__((packed)){
CONN_ERR_HOTPLUG = 8, // Коннектор неожиданно отключился
CONN_ERR_EV_COMM = 9, // Ошибка протокола связи с электромобилем
CONN_ERR_PSU_FAULT = 10, // Ошибка PSU
CONN_ERR_FIRE_ALARM = 11, // Пожарная тревога (до перезагрузки)
}CONN_Error_t;
+9
View File
@@ -0,0 +1,9 @@
#ifndef INC_FIRE_ALARM_H_
#define INC_FIRE_ALARM_H_
#include <stdint.h>
uint8_t FireAlarm_IsLatched(void);
void FireAlarm_Activate(void);
#endif /* INC_FIRE_ALARM_H_ */
+1 -1
View File
@@ -27,7 +27,7 @@ extern "C" {
/* USER CODE BEGIN EC */
#define FW_VERSION_MAJOR 1
#define FW_VERSION_MINOR 0
#define FW_VERSION_PATCH 17
#define FW_VERSION_PATCH 19
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
+2
View File
@@ -25,6 +25,8 @@
// Перезагрузка для входа в бутлоадер
#define CMD_DEVICE_RESET 0xB5
// Пожарная тревога (внешний триггер)
#define CMD_FIRE_ALARM 0xB7
// Коды ответов
#define RESP_SUCCESS 0x12
+4 -1
View File
@@ -2,6 +2,7 @@
#include "charger_config.h"
#include "debug.h"
#include "fire_alarm.h"
#include "psu_control.h"
ChargingConnector_t CONN;
@@ -22,7 +23,9 @@ void CONN_Loop(){
CONN.connControl = CMD_NONE;
}
if(PSU0.cont_fault){
if (FireAlarm_IsLatched()) {
CONN.chargingError = CONN_ERR_FIRE_ALARM;
} else if(PSU0.cont_fault){
CONN.chargingError = CONN_ERR_CONTACTOR;
} else if(PSU0.psu_fault){
CONN.chargingError = CONN_ERR_PSU_FAULT;
+20
View File
@@ -0,0 +1,20 @@
#include "fire_alarm.h"
#include "charger_control.h"
#include "debug.h"
#include "serial.h"
static uint8_t fire_alarm_latched = 0;
uint8_t FireAlarm_IsLatched(void) {
return fire_alarm_latched;
}
void FireAlarm_Activate(void) {
if (fire_alarm_latched) {
return;
}
fire_alarm_latched = 1;
log_printf(LOG_ERR, "FIRE ALARM activated\n");
}
+5
View File
@@ -3,6 +3,7 @@
#include "board.h"
#include "charger_control.h"
#include "debug.h"
#include "fire_alarm.h"
#include "psu_control.h"
#include "usart.h"
#include <string.h>
@@ -86,6 +87,10 @@ void SC_CommandHandler(ReceivedCommand_t* cmd) {
// }
response_code = RESP_FAILED;
break;
case CMD_FIRE_ALARM:
FireAlarm_Activate();
response_code = RESP_SUCCESS;
break;
case CMD_DEVICE_RESET:
// 2. Отправляем SUCCESS (хост может успеть получить его перед ребутом)
SC_SendPacket(NULL, 0, RESP_SUCCESS);
Binary file not shown.
Binary file not shown.
+3676 -3668
View File
File diff suppressed because it is too large Load Diff
+22816 -22750
View File
File diff suppressed because it is too large Load Diff
+1448 -1293
View File
File diff suppressed because it is too large Load Diff
+3676 -3669
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -1,3 +1,3 @@
../Core/Src/charger_control.c:10:6:CONN_Init 1
../Core/Src/charger_control.c:18:6:CONN_Loop 6
../Core/Src/charger_control.c:39:6:CONN_SetState 16
../Core/Src/charger_control.c:11:6:CONN_Init 1
../Core/Src/charger_control.c:19:6:CONN_Loop 7
../Core/Src/charger_control.c:42:6:CONN_SetState 16
+2 -2
View File
@@ -1,3 +1,3 @@
../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1
../Core/Src/serial_handler.c:26:6:SC_CommandHandler 19
../Core/Src/serial_handler.c:125:13:monitoring_data_callback 1
../Core/Src/serial_handler.c:27:6:SC_CommandHandler 20
../Core/Src/serial_handler.c:130:13:monitoring_data_callback 1
+4 -1
View File
@@ -13,6 +13,7 @@ C_SRCS += \
../Core/Src/crc.c \
../Core/Src/debug.c \
../Core/Src/dma.c \
../Core/Src/fire_alarm.c \
../Core/Src/gpio.c \
../Core/Src/main.c \
../Core/Src/meter.c \
@@ -41,6 +42,7 @@ C_DEPS += \
./Core/Src/crc.d \
./Core/Src/debug.d \
./Core/Src/dma.d \
./Core/Src/fire_alarm.d \
./Core/Src/gpio.d \
./Core/Src/main.d \
./Core/Src/meter.d \
@@ -69,6 +71,7 @@ OBJS += \
./Core/Src/crc.o \
./Core/Src/debug.o \
./Core/Src/dma.o \
./Core/Src/fire_alarm.o \
./Core/Src/gpio.o \
./Core/Src/main.o \
./Core/Src/meter.o \
@@ -96,7 +99,7 @@ Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk
clean: clean-Core-2f-Src
clean-Core-2f-Src:
-$(RM) ./Core/Src/adc.cyclo ./Core/Src/adc.d ./Core/Src/adc.o ./Core/Src/adc.su ./Core/Src/board.cyclo ./Core/Src/board.d ./Core/Src/board.o ./Core/Src/board.su ./Core/Src/can.cyclo ./Core/Src/can.d ./Core/Src/can.o ./Core/Src/can.su ./Core/Src/charger_control.cyclo ./Core/Src/charger_control.d ./Core/Src/charger_control.o ./Core/Src/charger_control.su ./Core/Src/cp.cyclo ./Core/Src/cp.d ./Core/Src/cp.o ./Core/Src/cp.su ./Core/Src/crc.cyclo ./Core/Src/crc.d ./Core/Src/crc.o ./Core/Src/crc.su ./Core/Src/debug.cyclo ./Core/Src/debug.d ./Core/Src/debug.o ./Core/Src/debug.su ./Core/Src/dma.cyclo ./Core/Src/dma.d ./Core/Src/dma.o ./Core/Src/dma.su ./Core/Src/gpio.cyclo ./Core/Src/gpio.d ./Core/Src/gpio.o ./Core/Src/gpio.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/meter.cyclo ./Core/Src/meter.d ./Core/Src/meter.o ./Core/Src/meter.su ./Core/Src/psu_control.cyclo ./Core/Src/psu_control.d ./Core/Src/psu_control.o ./Core/Src/psu_control.su ./Core/Src/rgb_controller.cyclo ./Core/Src/rgb_controller.d ./Core/Src/rgb_controller.o ./Core/Src/rgb_controller.su ./Core/Src/rtc.cyclo ./Core/Src/rtc.d ./Core/Src/rtc.o ./Core/Src/rtc.su ./Core/Src/serial.cyclo ./Core/Src/serial.d ./Core/Src/serial.o ./Core/Src/serial.su ./Core/Src/serial_control.cyclo ./Core/Src/serial_control.d ./Core/Src/serial_control.o ./Core/Src/serial_control.su ./Core/Src/serial_handler.cyclo ./Core/Src/serial_handler.d ./Core/Src/serial_handler.o ./Core/Src/serial_handler.su ./Core/Src/sma_filter.cyclo ./Core/Src/sma_filter.d ./Core/Src/sma_filter.o ./Core/Src/sma_filter.su ./Core/Src/soft_rtc.cyclo ./Core/Src/soft_rtc.d ./Core/Src/soft_rtc.o ./Core/Src/soft_rtc.su ./Core/Src/stm32f1xx_hal_msp.cyclo ./Core/Src/stm32f1xx_hal_msp.d ./Core/Src/stm32f1xx_hal_msp.o ./Core/Src/stm32f1xx_hal_msp.su ./Core/Src/stm32f1xx_it.cyclo ./Core/Src/stm32f1xx_it.d ./Core/Src/stm32f1xx_it.o ./Core/Src/stm32f1xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f1xx.cyclo ./Core/Src/system_stm32f1xx.d ./Core/Src/system_stm32f1xx.o ./Core/Src/system_stm32f1xx.su ./Core/Src/tim.cyclo ./Core/Src/tim.d ./Core/Src/tim.o ./Core/Src/tim.su ./Core/Src/usart.cyclo ./Core/Src/usart.d ./Core/Src/usart.o ./Core/Src/usart.su
-$(RM) ./Core/Src/adc.cyclo ./Core/Src/adc.d ./Core/Src/adc.o ./Core/Src/adc.su ./Core/Src/board.cyclo ./Core/Src/board.d ./Core/Src/board.o ./Core/Src/board.su ./Core/Src/can.cyclo ./Core/Src/can.d ./Core/Src/can.o ./Core/Src/can.su ./Core/Src/charger_control.cyclo ./Core/Src/charger_control.d ./Core/Src/charger_control.o ./Core/Src/charger_control.su ./Core/Src/cp.cyclo ./Core/Src/cp.d ./Core/Src/cp.o ./Core/Src/cp.su ./Core/Src/crc.cyclo ./Core/Src/crc.d ./Core/Src/crc.o ./Core/Src/crc.su ./Core/Src/debug.cyclo ./Core/Src/debug.d ./Core/Src/debug.o ./Core/Src/debug.su ./Core/Src/dma.cyclo ./Core/Src/dma.d ./Core/Src/dma.o ./Core/Src/dma.su ./Core/Src/fire_alarm.cyclo ./Core/Src/fire_alarm.d ./Core/Src/fire_alarm.o ./Core/Src/fire_alarm.su ./Core/Src/gpio.cyclo ./Core/Src/gpio.d ./Core/Src/gpio.o ./Core/Src/gpio.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/meter.cyclo ./Core/Src/meter.d ./Core/Src/meter.o ./Core/Src/meter.su ./Core/Src/psu_control.cyclo ./Core/Src/psu_control.d ./Core/Src/psu_control.o ./Core/Src/psu_control.su ./Core/Src/rgb_controller.cyclo ./Core/Src/rgb_controller.d ./Core/Src/rgb_controller.o ./Core/Src/rgb_controller.su ./Core/Src/rtc.cyclo ./Core/Src/rtc.d ./Core/Src/rtc.o ./Core/Src/rtc.su ./Core/Src/serial.cyclo ./Core/Src/serial.d ./Core/Src/serial.o ./Core/Src/serial.su ./Core/Src/serial_control.cyclo ./Core/Src/serial_control.d ./Core/Src/serial_control.o ./Core/Src/serial_control.su ./Core/Src/serial_handler.cyclo ./Core/Src/serial_handler.d ./Core/Src/serial_handler.o ./Core/Src/serial_handler.su ./Core/Src/sma_filter.cyclo ./Core/Src/sma_filter.d ./Core/Src/sma_filter.o ./Core/Src/sma_filter.su ./Core/Src/soft_rtc.cyclo ./Core/Src/soft_rtc.d ./Core/Src/soft_rtc.o ./Core/Src/soft_rtc.su ./Core/Src/stm32f1xx_hal_msp.cyclo ./Core/Src/stm32f1xx_hal_msp.d ./Core/Src/stm32f1xx_hal_msp.o ./Core/Src/stm32f1xx_hal_msp.su ./Core/Src/stm32f1xx_it.cyclo ./Core/Src/stm32f1xx_it.d ./Core/Src/stm32f1xx_it.o ./Core/Src/stm32f1xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f1xx.cyclo ./Core/Src/system_stm32f1xx.d ./Core/Src/system_stm32f1xx.o ./Core/Src/system_stm32f1xx.su ./Core/Src/tim.cyclo ./Core/Src/tim.d ./Core/Src/tim.o ./Core/Src/tim.su ./Core/Src/usart.cyclo ./Core/Src/usart.d ./Core/Src/usart.o ./Core/Src/usart.su
.PHONY: clean-Core-2f-Src
+1
View File
@@ -6,6 +6,7 @@
"./Core/Src/crc.o"
"./Core/Src/debug.o"
"./Core/Src/dma.o"
"./Core/Src/fire_alarm.o"
"./Core/Src/gpio.o"
"./Core/Src/main.o"
"./Core/Src/meter.o"