#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