Initial commit: CCU621_M firmware project with BLE debug link support.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-08 17:28:36 +08:00
commit 9ceb218f80
1597 changed files with 724159 additions and 0 deletions
+323
View File
@@ -0,0 +1,323 @@
#ifndef _PUBLIC_DEFINE_H_
#define _PUBLIC_DEFINE_H_
/***************************************系统相关-开始*******************************/
/* 系统类型宏 */
#define SYSTEM_TYPE_CCU601E_D 0 /* STM32H5xx */
#define SYSTEM_TYPE_CCU621_M 1 /* GD32H7xx */
#define SYSTEM_TYPE_CCU601_M 2 /* 预留 */
#ifndef SYSTEM_TYPE
#define SYSTEM_TYPE SYSTEM_TYPE_CCU621_M
#endif
/* POS VTK 串口结算功能使能:1=编译 VTK 相关代码;0=完全关闭 */
#ifndef POS_VTK_EN
#define POS_VTK_EN 0
#endif
/***************************************系统相关-结束*******************************/
/***************************************充电枪相关-开始*******************************/
#ifndef GUN_MAX_CNT
#define GUN_MAX_CNT 2 //充电枪最大数量
#endif
#ifndef CAN_PLC_FLAG
#define CAN_PLC_FLAG 0 //欧标CAN转PLC使能标志 0不使能 1使能
#endif
/* 抢连接状态通信使能:1=编译 STM32072 抢连接/DI 状态 CAN 通信相关代码;0=关闭 */
#ifndef GUN_LINK_COMM_EN
#define GUN_LINK_COMM_EN 0
#endif
/***************************************充电枪相关-结束*******************************/
/***************************************调试测试相关-开始*******************************/
#ifndef MY_SHELL_EN
#define MY_SHELL_EN 1 //shell 命令功能使能
#endif
/* printf 与 shell 共用调试串口配置。
* - 取值:0/2/3/4/5/6/7(对应 E_USART_ID
* - 禁用:使用 0xFF(等效于 NULL,不进行对应串口收发配置)
*/
#ifndef DEBUG_SHELL_USART_NULL
#define DEBUG_SHELL_USART_NULL (0xFFU)
#endif
/* Shell 调试串口:不同系统硬件接线不同 */
#ifndef DEBUG_SHELL_USART_ID
#if SYSTEM_TYPE == SYSTEM_TYPE_CCU601E_D
#define DEBUG_SHELL_USART_ID (1U) /* [CCU601E_D] USART1 */
#elif SYSTEM_TYPE == SYSTEM_TYPE_CCU621_M
#define DEBUG_SHELL_USART_ID (2U) /* [CCU621_M] USART2 */
#else
#define DEBUG_SHELL_USART_ID (2U) /* 默认 */
#endif
#endif
/***************************************调试测试相关-结束*******************************/
/***************************************电表通信相关-开始*******************************/
#ifndef METER_MAX_CNT
#define METER_MAX_CNT (4) //电表最大数量
#endif
#ifndef METER_COMM_TYPE_CNT
#define METER_COMM_TYPE_CNT (3) //电表通信数据类型数量 3分别为电量、电压、电流
#endif
#ifndef METER_RECV_TIMEOUT_MS
#define METER_RECV_TIMEOUT_MS (600) //电表数据接收超时时间 600ms
#endif
#ifndef METER_COMM_MAX_CNT
#define METER_COMM_MAX_CNT (2) //单路通信口 电表最大数量 - 一路485口最大有几个电表
#endif
#ifndef METER_TIMEOUT_CNT
#define METER_TIMEOUT_CNT (20*1000) //通讯超时时间 -单位 ms
#endif
#ifndef METER_BAUD_FLAG
#define METER_BAUD_FLAG 1 //电表波特率 0-9600 1-2400
#endif
/***************************************电表通信相关-结束*******************************/
/***************************************UI显示相关-开始*******************************/
#ifndef UI_LANGUAGE_MAX_NUM
#define UI_LANGUAGE_MAX_NUM (3) //UI界面 最大支持语言数量 默认2 中文、英文
#endif
#ifndef UI_COMM_TIME_OUT_TIME
#define UI_COMM_TIME_OUT_TIME (1000 * 30) //UI界面通信超时时间 单位 ms - 65535 最大60秒
#endif
#ifndef UI_FREE_CHANGE_TIME
#define UI_FREE_CHANGE_TIME (60*5) //空闲时待机跳转屏保时间
#endif
/***************************************UI显示相关-结束*******************************/
/***************************************充电模块相关-开始*******************************/
#ifndef MDU_MAX_NUM
#define MDU_MAX_NUM 10 //最大模块数量
#endif
#ifndef MDU_PARA_READ_EN
#define MDU_PARA_READ_EN 1 //模块参数读取使能
#endif
#ifndef MDU_TEMP_READ_EN
#define MDU_TEMP_READ_EN 1 //模块温度读取使能
#endif
#ifndef MDU_UULN_EN
#define MDU_UULN_EN 0 //优优绿能模块使能 0=不编译
#endif
/***************************************充电模块相关-结束*******************************/
/***************************************平台联网相关宏定义-开始*******************************/
#ifndef MAX_BS_NUM
#define MAX_BS_NUM 2 //最大同时连接两个平台
#endif
#ifndef BS_RECV_BUF_LEN
#define BS_RECV_BUF_LEN (1024*3) //接收数据大小
#endif
/* 由于系统后续需要添加多个平台,无法实现同一份代码的兼容,因此使用宏定义预编译的方式 进行平台选择和配置。
配置原则:
(1)平台相关宏至少使能一个平台,使能平台宏跟随平台连接配置,不需要连接的平台必须关闭宏
(2)相关平台宏预编译内容包含此平台的所有变量定义、函数定义、库文件调用等,按照联网框架增加相关内容的预编译效果
(3)平台相关宏相互独立,要确保每个宏的开关不影响其他功能的使用
*/
#ifndef BS_IES_EN
#define BS_IES_EN (0) //积成平台连接使能
#endif
#ifndef BS_GWSDK_EN
#define BS_GWSDK_EN (1) //国网sdk平台连接使能
#endif
#ifndef BS_OCPP_EN
#define BS_OCPP_EN (0) //OCPP平台连接使能
#endif
/* OCPP 时间戳输出时区:0=东八区格式 +08:00;1=零时区(UTC)格式 后缀 Z。GetCurrentTime 为东八区时间 */
#ifndef OCPP_TIMESTAMP_UTC_OUTPUT
#define OCPP_TIMESTAMP_UTC_OUTPUT (1)
#endif
/* OCPP MeterValues充电数据中 是否上送需求电压 需求电流数据 (需求电压需求电流数据为非标准OCPP 1.6规定 部分客户要求上送(白俄客户))*/
#ifndef OCPP_METERVALUES_VOL_CUR_REQUEST_EN
#define OCPP_METERVALUES_VOL_CUR_REQUEST_EN (0) //
#endif
#ifndef LWIP_FTP_UPGRADE_ENABLE
#define LWIP_FTP_UPGRADE_ENABLE (0) //LwIP 网线 FTP 固件升级使能,0=关闭 1=开启
#endif
/* 4G 模块选型:0=EC200A(默认), 1=WH-GM5
根据实际硬件选型修改 FOURG_MODULE_TYPE 即可自动切换:
- EC200A:编译 ec200a_4g.c / ec200a_4g_ftp.c
- WH-GM5:编译 bs_wh_gm5.c
具体对应关系见 4g_module/4G模块AT指令配置功能说明.md */
#ifndef FOURG_MODULE_TYPE
#define FOURG_MODULE_TYPE (1) // 4G模块类型:0=EC200A, 1=WH-GM5
#endif
#if FOURG_MODULE_TYPE == 0
#ifndef EC200A_4G_EN
#define EC200A_4G_EN (1) // EC200A 4G模块使能
#endif
#ifndef WH_GM5_EN
#define WH_GM5_EN (0) // WH-GM5 4G模块使能
#endif
#elif FOURG_MODULE_TYPE == 1
#ifndef EC200A_4G_EN
#define EC200A_4G_EN (0)
#endif
#ifndef WH_GM5_EN
#define WH_GM5_EN (1) // WH-GM5 4G模块使能
#endif
#else
#error "FOURG_MODULE_TYPE invalid: must be 0 (EC200A) or 1 (WH-GM5)"
#endif
/* 平台 TLS 加密使能:1=编译基于 mbedtls 的 TLS 封装及 wss 支持;0=完全关闭,走纯明文 ws */
#ifndef BS_TLS_MBEDTLS_EN
#define BS_TLS_MBEDTLS_EN (0)
#endif
/***************************************平台联网相关宏定义-结束*******************************/
/***************************************故障信息相关-开始*******************************/
#ifndef CURR_FAULT_MAX_CNT
#define CURR_FAULT_MAX_CNT 15 //当前故障最大数量
#endif
#ifndef CURR_ALARM_MAX_CNT
#define CURR_ALARM_MAX_CNT 5 //当前告警最大数量
#endif
#ifndef HIS_FAULT_MAX_CNT
#define HIS_FAULT_MAX_CNT 300 //历史告警最大数量
#endif
#ifndef FAULT_GET_MAG_MAX_LEN
#define FAULT_GET_MAG_MAX_LEN (64) //故障信息获取最大长度
#endif
#ifndef FAULT_GUN_NOLINK_RES_TIME
#define FAULT_GUN_NOLINK_RES_TIME (5*60) //故障拔枪恢复、充电完成恢复时间 单位秒
#endif
#ifndef FUALT_INFO_PRINT_TIME
#define FUALT_INFO_PRINT_TIME (60*5) //故障信息打印周期 单位 秒
#endif
/***************************************故障信息相关-结束*******************************/
/***************************************flash存储相关-开始*******************************/
#ifndef RECORD_ZERO_SAVE
#define RECORD_ZERO_SAVE 0x7FFF //标明充电记录/告警记录为0,未存储
#endif
#ifndef RECORD_HEADER
#define RECORD_HEADER 0x55 //每条记录头字节
#endif
#ifndef FATFS_EN
#define FATFS_EN 0 // FATFS文件系统模块使能,0=不编译 1=编译
#endif
/* TF/SD 卡:diskio 驱动 + app_sdmmc / sd_cfg 等;0=整段不编译,节省 Flash/RAM */
#ifndef SD_CARD_EN
#define SD_CARD_EN 0
#endif
/* NAND Flash (外部FMC NAND) 使能:0=不编译相关驱动/初始化/测试;1=编译 */
#ifndef NAND_FLASH_EN
#define NAND_FLASH_EN 0
#endif
/* FATFS 子功能开关(原位于 BSP/app_fatfs/fatfs_features.h */
#ifndef FATFS_ENABLE_LOG
#define FATFS_ENABLE_LOG 1
#endif
#ifndef FATFS_ENABLE_CARD
#define FATFS_ENABLE_CARD 0
#endif
#ifndef FATFS_ENABLE_FAULT
#define FATFS_ENABLE_FAULT 0
#endif
#ifndef FATFS_ENABLE_ORDER
#define FATFS_ENABLE_ORDER 0
#endif
/***************************************flash存储相关-结束*******************************/
/***************************************其他功能宏定义-开始*******************************/
#ifndef TASK_RUN_PRINT_TIME
#define TASK_RUN_PRINT_TIME (60*10) //任务运行打印时间 单位秒-- 用于周期打印任务信息,证明任务运行正常
#endif
#ifndef HTTP_DEBUG_EN
#define HTTP_DEBUG_EN 0 //HTTP调试界面使能,默认使能,当不使能时HTTP相关的代码都不被编译
#endif
#ifndef TCP_DEBUG_EN
#define TCP_DEBUG_EN 1 //TCP调试服务器使能
#endif
#if TCP_DEBUG_EN
#define TCP_DEBUG_PORT 9699 //TCP服务器端口号
#define TCP_DEBUG_MAX_CLIENTS 1 //最大客户端连接数(仅支持一个客户端)
#endif
#if HTTP_DEBUG_EN
#define HTTP_DEBUG_SYSTEM_INFO (1) //系统信息显示
#define HTTP_DEBUG_SYSTEM_MONITOR (0) //线程信息监控
#define HTTP_DEBUG_CHARGING_INFO (1) //充电信息显示控制
#define HTTP_DEBUG_PARA_CFG (1) //参数配置
#define HTTP_DEBUG_FIRMWARE_UP (0) //固件升级功能
#define HTTP_DEBUG_FILE_DOWNLOAD (0) //文件交互(已禁用)
#endif
#ifndef PAPRA_SETTING_EN
#define PAPRA_SETTING_EN 0 // 网络调试助手参数读写/充电启停,0=不编译 1=编译
#endif
/* 蓝牙调试(FC41D,可选):1=编译 BLE 链路代码;0=整文件不编入有效代码,节省 Flash/RAM
* - 依赖 TCP_DEBUG_EN=1(协议/任务与 TCP 调试共用 tcp_server
* - 运行时:副板 DIP1 选物理链路 — 0=以太网 TCP 上位机,1=蓝牙上位机(仅宏为 1 时有效)
* - 无 FC41D 或未贴模组:保持 BLE_DEBUG_EN=0,拨码仅影响 TCP 模式下的预留行为 */
#ifndef BLE_DEBUG_EN
#define BLE_DEBUG_EN 1
#endif
#if (BLE_DEBUG_EN != 0) && (TCP_DEBUG_EN == 0)
#error BLE_DEBUG_EN requires TCP_DEBUG_EN
#endif
#if TCP_DEBUG_EN
#define TCP_DEBUG_PORT 9699 //TCP服务器端口号
#define TCP_DEBUG_MAX_CLIENTS 1 //最大客户端连接数(仅支持一个客户端)
#define TCP_DEBUG_SEND_INTERVAL_MS 5000 //发送hello消息间隔(毫秒)
#endif
/***************************************其他功能宏定义-结束*******************************/
#endif