Files

264 lines
13 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef SYSTEM_PARACFG_H
#define SYSTEM_PARACFG_H
#ifdef __cplusplus /*C++编译环境下兼容C语言*/
extern "C" {
#endif
/*------ Exported includes(头文件) ----------------------*/
#include <stdint.h>
#include "publicdata/public_define.h"
#include "publicdata/publicdata.h"
/*------ Exported macro(宏定义) -------------------------*/
/*------ Exported struct(结构体定义) --------------------*/
/* 参数类型枚举(节省内存) */
typedef enum {
PARAM_TYPE_STRING = 0, /* 字符串类型 */
PARAM_TYPE_UINT8 = 1, /* uint8类型 */
PARAM_TYPE_UINT16 = 2, /* uint16类型 */
PARAM_TYPE_UINT32 = 3, /* uint32类型 */
PARAM_TYPE_FLOAT = 4, /* 浮点类型 */
PARAM_TYPE_INT = 5, /* 整数类型 */
PARAM_TYPE_ARRAY = 6, /* 数组类型(字节数组) */
PARAM_TYPE_BIT = 7, /* 位字段类型 */
} param_data_type_t;
/* 基本参数枚举 */
typedef enum {
PARAM_BASIC_GUN_COUNT, /* 枪数量 */
PARAM_BASIC_RATE_POW, /* 额定功率 */
PARAM_BASIC_MAX_VOLT, /* 最大电压 */
PARAM_BASIC_MAX_CUR, /* 最大电流 */
PARAM_BASIC_PWD, /* 维护密码 */
PARAM_BASIC_PILE_TYPE, /* 桩类型 */
PARAM_BASIC_TERMINAL_0, /* 终端地址0 */
PARAM_BASIC_TERMINAL_1, /* 终端地址1 */
PARAM_BASIC_LED_TYPE, /* 灯板类型 */
PARAM_BASIC_TIME_ZONE, /* 时区设置*/
PARAM_BASIC_THRESHOLD_GUN_TEMP, /* 枪温阈值 */
PARAM_BASIC_SOC_LIMIT, /* SOC阈值 */
PARAM_BASIC_MIN_VOLT, /* 最小电压 */
PARAM_BASIC_TRICKLE_LIMIT, /* 涓流充电停机阈值 */
PARAM_BASIC_MDU_NUM, /* 充电模块数量 */
PARAM_BASIC_MDU_TYPE, /* 模块类型 */
PARAM_BASIC_MDU_TEMP_FLAG, /* 模块温度获取使能 */
PARAM_BASIC_MDU_RATED_POW, /* 模块额定功率 */
PARAM_BASIC_MDU_MAX_VOL, /* 模块最大电压 */
PARAM_BASIC_MDU_MAX_CUR, /* 模块最大电流 */
PARAM_BASIC_GUN_TYPE_0, /* 枪1类型 0欧标枪 1国标枪 */
PARAM_BASIC_GUN_TYPE_1, /* 枪2类型 0欧标枪 1国标枪 */
PARAM_BASIC_GUN_POWER_LIMIT_0, /* 枪1充电功率限制 0表示不限制 单位kW */
PARAM_BASIC_GUN_POWER_LIMIT_1, /* 枪2充电功率限制 0表示不限制 单位kW */
PARAM_BASIC_PILE_POWER_LIMIT, /* 整桩功率限制 0表示不限制 单位kW */
PARAM_BASIC_COUNT /* 基本参数数量 */
} param_basic_enum_t;
/* 网络参数枚举 */
typedef enum {
PARAM_NETWORK_ETH_IP = 0, /* IP地址 */
PARAM_NETWORK_ETH_GATE, /* 网关 */
PARAM_NETWORK_ETH_MASK, /* 子网掩码 */
PARAM_NETWORK_ETH_MAC, /* MAC地址 */
PARAM_NETWORK_SERVER_A_DOMAIN, /* 服务器A域名 */
PARAM_NETWORK_SERVER_B_DOMAIN, /* 服务器B域名 */
PARAM_NETWORK_PLAT_A_PILENUM, /* 平台1桩编号 */
PARAM_NETWORK_PLAT_B_PILENUM, /* 平台2桩编号 */
PARAM_NETWORK_NET_COMM_PARA, /* 网络连接参数(整体)- 保留用于兼容性 */
/* U_NET_COMM_PARA 位字段参数 */
PARAM_NETWORK_PROGRAM_TYPE, /* 程序类型(2位) */
PARAM_NETWORK_NET_A_TYPE, /* 平台1联网方式(2位) */
PARAM_NETWORK_NET_B_TYPE, /* 平台2联网方式(2位) */
PARAM_NETWORK_PLAT_A_EN, /* 平台1使能(2位) */
PARAM_NETWORK_PLAT_B_EN, /* 平台2使能(2位) */
PARAM_NETWORK_PLAT_A_TYPE, /* 平台1类型(4位) */
PARAM_NETWORK_PLAT_B_TYPE, /* 平台2类型(4位) */
PARAM_NETWORK_SIM_ANP_TYPE, /* SIM卡APN类型(2位) */
PARAM_NETWORK_COUNT /* 网络参数数量 */
} param_network_enum_t;
/* 电表参数枚举 */
typedef enum {
PARAM_METER_METER_NUM = 0, /* 电表数量 */
PARAM_METER_0_IN_GUN, /* 电表0归属枪号 */
PARAM_METER_0_HIGH_PREC, /* 电表0高精度支持 */
PARAM_METER_0_IS_AC, /* 电表0是否为交流表 */
PARAM_METER_0_ADDR, /* 电表0地址 */
PARAM_METER_1_IN_GUN, /* 电表1归属枪号 */
PARAM_METER_1_HIGH_PREC, /* 电表1高精度支持 */
PARAM_METER_1_IS_AC, /* 电表1是否为交流表 */
PARAM_METER_1_ADDR, /* 电表1地址 */
PARAM_METER_2_IN_GUN, /* 电表2归属枪号 */
PARAM_METER_2_HIGH_PREC, /* 电表2高精度支持 */
PARAM_METER_2_IS_AC, /* 电表2是否为交流表 */
PARAM_METER_2_ADDR, /* 电表2地址 */
PARAM_METER_3_IN_GUN, /* 电表3归属枪号 */
PARAM_METER_3_HIGH_PREC, /* 电表3高精度支持 */
PARAM_METER_3_IS_AC, /* 电表3是否为交流表 */
PARAM_METER_3_ADDR, /* 电表3地址 */
PARAM_METER_COUNT /* 电表参数数量 */
} param_meter_enum_t;
/* 使能参数枚举 */
typedef enum {
PARAM_ENABLE_DOOR_ENABLE = 0, /* 门禁使能(2位) */
PARAM_ENABLE_GUN_LOCK_ENA, /* 枪锁使能(2位) */
PARAM_ENABLE_GUN_LOCK_NEG, /* 枪锁信号取反(2位) */
PARAM_ENABLE_AC_CONTACT_ENA, /* 交流接触器使能(2位) */
PARAM_ENABLE_GUN_HOMING, /* 枪归位信号有无(2位) */
PARAM_ENABLE_GB_ENABLE, /* 国标使能(2位) */
PARAM_ENABLE_LCD_ENABLE, /* 液晶使能(2位) */
PARAM_ENABLE_AUX_POWER, /* 辅助电压返回状态使能(2位) */
PARAM_ENABLE_RELIEF_EN, /* 泄放使能(2位) */
PARAM_ENABLE_YE_LEN_EN, /* 液冷通讯使能(2位) */
PARAM_ENABLE_AB_COMM_EN, /* 主副班通讯使能(2位) */
PARAM_ENABLE_SCREEN_SAVER_EN, /* UI屏保显示使能(2位) */
PARAM_ENABLE_PLUG_EN, /* 即插即充使能(2位) */
PARAM_ENABLE_UI_ENGLISH_EN, /* UI界面英语使能(2位) */
PARAM_ENABLE_DC_CONTACT_EN, /* 直流接触器使能(2位) */
PARAM_ENABLE_GUN_FAN_EN, /* 枪风扇使能(2位) */
PARAM_ENABLE_MDU_ZERO_POW_EN, /* 零功控制使能(2位) */
PARAM_ENABLE_LED_GB_EN, /* LED国标使能(2位) */
PARAM_ENABLE_COUNT /* 使能参数数量 */
} param_enable_enum_t;
/* 费率参数枚举 */
typedef enum {
PARAM_FEE_MODEL_NO = 0, /* 计费模型编号 */
PARAM_FEE_FEE_CNT, /* 费率条数 */
PARAM_FEE_TYPE_0_RATE, /* 费率类型0费率 */
PARAM_FEE_TYPE_0_SERVICE, /* 费率类型0服务费 */
PARAM_FEE_TYPE_1_RATE, /* 费率类型1费率 */
PARAM_FEE_TYPE_1_SERVICE, /* 费率类型1服务费 */
PARAM_FEE_TYPE_2_RATE, /* 费率类型2费率 */
PARAM_FEE_TYPE_2_SERVICE, /* 费率类型2服务费 */
PARAM_FEE_TYPE_3_RATE, /* 费率类型3费率 */
PARAM_FEE_TYPE_3_SERVICE, /* 费率类型3服务费 */
PARAM_FEE_TYPE_4_RATE, /* 费率类型4费率 */
PARAM_FEE_TYPE_4_SERVICE, /* 费率类型4服务费 */
PARAM_FEE_TYPE_5_RATE, /* 费率类型5费率 */
PARAM_FEE_TYPE_5_SERVICE, /* 费率类型5服务费 */
PARAM_FEE_TYPE_6_RATE, /* 费率类型6费率 */
PARAM_FEE_TYPE_6_SERVICE, /* 费率类型6服务费 */
PARAM_FEE_TYPE_7_RATE, /* 费率类型7费率 */
PARAM_FEE_TYPE_7_SERVICE, /* 费率类型7服务费 */
PARAM_FEE_TYPE_8_RATE, /* 费率类型8费率 */
PARAM_FEE_TYPE_8_SERVICE, /* 费率类型8服务费 */
PARAM_FEE_TYPE_9_RATE, /* 费率类型9费率 */
PARAM_FEE_TYPE_9_SERVICE, /* 费率类型9服务费 */
PARAM_FEE_TYPE_10_RATE, /* 费率类型10费率 */
PARAM_FEE_TYPE_10_SERVICE, /* 费率类型10服务费 */
PARAM_FEE_TYPE_11_RATE, /* 费率类型11费率 */
PARAM_FEE_TYPE_11_SERVICE, /* 费率类型11服务费 */
PARAM_FEE_TYPE_12_RATE, /* 费率类型12费率 */
PARAM_FEE_TYPE_12_SERVICE, /* 费率类型12服务费 */
PARAM_FEE_TYPE_13_RATE, /* 费率类型13费率 */
PARAM_FEE_TYPE_13_SERVICE, /* 费率类型13服务费 */
PARAM_FEE_TYPE_14_RATE, /* 费率类型14费率 */
PARAM_FEE_TYPE_14_SERVICE, /* 费率类型14服务费 */
PARAM_FEE_TYPE_15_RATE, /* 费率类型15费率 */
PARAM_FEE_TYPE_15_SERVICE, /* 费率类型15服务费 */
PARAM_FEE_TYPE_16_RATE, /* 费率类型16费率 */
PARAM_FEE_TYPE_16_SERVICE, /* 费率类型16服务费 */
PARAM_FEE_TYPE_17_RATE, /* 费率类型17费率 */
PARAM_FEE_TYPE_17_SERVICE, /* 费率类型17服务费 */
PARAM_FEE_TYPE_18_RATE, /* 费率类型18费率 */
PARAM_FEE_TYPE_18_SERVICE, /* 费率类型18服务费 */
PARAM_FEE_TYPE_19_RATE, /* 费率类型19费率 */
PARAM_FEE_TYPE_19_SERVICE, /* 费率类型19服务费 */
PARAM_FEE_TYPE_20_RATE, /* 费率类型20费率 */
PARAM_FEE_TYPE_20_SERVICE, /* 费率类型20服务费 */
PARAM_FEE_TYPE_21_RATE, /* 费率类型21费率 */
PARAM_FEE_TYPE_21_SERVICE, /* 费率类型21服务费 */
PARAM_FEE_TYPE_22_RATE, /* 费率类型22费率 */
PARAM_FEE_TYPE_22_SERVICE, /* 费率类型22服务费 */
PARAM_FEE_TYPE_23_RATE, /* 费率类型23费率 */
PARAM_FEE_TYPE_23_SERVICE, /* 费率类型23服务费 */
PARAM_FEE_TYPE_24_RATE, /* 费率类型24费率 */
PARAM_FEE_TYPE_24_SERVICE, /* 费率类型24服务费 */
PARAM_FEE_TYPE_25_RATE, /* 费率类型25费率 */
PARAM_FEE_TYPE_25_SERVICE, /* 费率类型25服务费 */
PARAM_FEE_TYPE_26_RATE, /* 费率类型26费率 */
PARAM_FEE_TYPE_26_SERVICE, /* 费率类型26服务费 */
PARAM_FEE_TYPE_27_RATE, /* 费率类型27费率 */
PARAM_FEE_TYPE_27_SERVICE, /* 费率类型27服务费 */
PARAM_FEE_TYPE_28_RATE, /* 费率类型28费率 */
PARAM_FEE_TYPE_28_SERVICE, /* 费率类型28服务费 */
PARAM_FEE_TYPE_29_RATE, /* 费率类型29费率 */
PARAM_FEE_TYPE_29_SERVICE, /* 费率类型29服务费 */
PARAM_FEE_TYPE_1_24, /* 时段0费率类型 */
PARAM_FEE_TYPE_25_48, /* 时段0费率类型 */
PARAM_FEE_TYPE_49_72, /* 时段0费率类型 */
PARAM_FEE_TYPE_73_96, /* 时段0费率类型 */
PARAM_FEE_COUNT /* 费率参数数量 */
} param_fee_enum_t;
/* SDK参数枚举 */
typedef enum {
PARAM_SDK_PRODUCT_KEY = 0, /* 产品秘钥 */
PARAM_SDK_DEVICE_NAME, /* 资产码 */
PARAM_SDK_DEVICE_SECRET, /* 设备密钥 */
PARAM_SDK_DEVICE_REG_CODE, /* 注册码 */
PARAM_SDK_DEVICE_UID, /* 出厂编码 */
PARAM_SDK_FIRMWARE_VERSION, /* 固件版本信息 */
PARAM_SDK_COUNT /* SDK参数数量 */
} param_sdk_enum_t;
/* 二维码参数枚举 */
typedef enum {
PARAM_QRCODE_GUN1 = 0, /* 枪1二维码 */
PARAM_QRCODE_GUN2, /* 枪2二维码 */
PARAM_QRCODE_CUSTOM_VER, /* 自定义版本号 */
PARAM_QRCODE_APN_STR, /* 4G apn */
PARAM_QRCODE_OCPP_AUTH_KEY, /* OCPP鉴权密钥 */
PARAM_QRCODE_COUNT /* 二维码参数数量 */
} param_qrcode_enum_t;
/* 参数映射表项结构 */
typedef struct {
uint16_t param_id; /* 参数ID(枚举值) */
const char *param_name; /* 参数名称 */
param_data_type_t data_type; /* 参数数据类型 */
void *data_addr; /* 参数数据地址 */
uint16_t data_size; /* 参数数据大小 */
const char *decs; /* 参数描述(可为NULL */
} param_map_item_t;
/*------ Exported variables(变量定义) -------------------*/
/*------ Exported function prototypes (函数声明) -------*/
#if TCP_DEBUG_EN
const param_map_item_t *param_get_basic_map(void);
uint16_t param_get_basic_map_size(void);
const param_map_item_t *param_get_network_map(void);
uint16_t param_get_network_map_size(void);
const param_map_item_t *param_get_meter_map(void);
uint16_t param_get_meter_map_size(void);
const param_map_item_t *param_get_enable_map(void);
uint16_t param_get_enable_map_size(void);
const param_map_item_t *param_get_fee_map(void);
uint16_t param_get_fee_map_size(void);
const param_map_item_t *param_get_sdk_map(void);
uint16_t param_get_sdk_map_size(void);
const param_map_item_t *param_get_qrcode_map(void);
uint16_t param_get_qrcode_map_size(void);
const char *param_type_to_string(param_data_type_t type);
uint32_t param_get_enable_bit_value(uint16_t param_id, uint8_t op_flag, uint32_t value);
uint32_t param_get_netcomm_bit_value(uint16_t param_id, uint8_t op_flag, uint32_t value);
int param_get_value_as_string(const param_map_item_t *item, char *buffer, uint32_t size);
int param_set_value_from_string(const param_map_item_t *item, const char *value_str);
const param_map_item_t *param_get_map_item_by_id(uint16_t param_id);
#endif /* TCP_DEBUG_EN */
#ifdef __cplusplus
}
#endif
#endif /* SYSTEM_PARACFG_H */