90 lines
4.5 KiB
C
90 lines
4.5 KiB
C
/*
|
||
* inflash.h
|
||
*
|
||
* Created on: 2024年6月24日
|
||
* Author: psx
|
||
*/
|
||
|
||
#ifndef APP_INC_INFLASH_H_
|
||
#define APP_INC_INFLASH_H_
|
||
|
||
#include "debug.h"
|
||
|
||
#pragma pack(push,1)
|
||
|
||
/* 高字节在前,低字节在后 */
|
||
typedef struct _recv_config_info{
|
||
uint8_t start_Flag[2]; /* 开始标志 */
|
||
/* SL */
|
||
uint8_t address[7]; /* 地址 */
|
||
uint8_t Access_Node_Type[2]; /* 接入节点类型 */
|
||
uint8_t Communication_Methods[2]; /* 通信方式 */
|
||
uint8_t gw485_Baud[4]; /* 串口波特率,为0代表bms不支持通信 */
|
||
uint8_t bat485_Baud[4]; /* 串口波特率 */
|
||
|
||
/* HY */
|
||
uint8_t hardwareID[6]; /* 硬件ID */
|
||
uint8_t communicationID[4]; /* 通信ID */
|
||
uint8_t protocolType; /* 协议类型; 0x01表示:汇源协议(波特率9600) 0x02表示:南瑞协议(波特率115200)*/
|
||
|
||
uint8_t ConstantVoltageV[2]; /* 高于该(电压 / 100)且电流大于FloatI * 100进行恒压充电 */
|
||
uint8_t FloatI[2]; /* 高于该(电压 / 100)且电流低于FloatI * 100进行浮充充电 */
|
||
uint8_t startSolarOpenCircuitV[2]; /* 高于该(电压 / 100)开始充电 */
|
||
uint8_t stopSolarOpenCircuitV[2]; /* 太阳能板开路电压高于该电压停止充电 (V) */
|
||
uint8_t constantVoltageChargeV[2]; /* 恒压充电时的输出电压 (V) */
|
||
uint8_t FloatV[2]; /* 浮充充电时的输出电压 (V) */
|
||
uint8_t HighSideMosTemperature_stop[2]; /* 当上桥温度达到该值时,停止输出 (°C) */
|
||
uint8_t HighSideMosTemperature_end[2]; /* 当上桥温度上升到该值时,降低功率运行 (°C) */
|
||
uint8_t HighSideMosTemperature_start[2];/* 当上桥温度降低到该值时,按照正常情况输出 (°C) */
|
||
uint8_t loopImpedance[2]; /* 回路阻抗大小 (mΩ) */
|
||
|
||
uint8_t checkSolarOpenCircuitVTime[2]; /* 启动任务中太阳能板开路电压检测间隔时间 (S) */
|
||
uint8_t outputAgainFlagTime[2]; /* 出现短路保护后延长该段时间再次检测是否短路,仍然短路则关闭输出 (S) */
|
||
uint8_t excessiveLoadFlagTime[2]; /* 出现过载后,在该间隔时间中多次(2次)出现过载,则关闭输出 (S) */
|
||
uint8_t eLAgainTime[2]; /* 出现过载过载保护后,在该间隔段时间后,再次尝试输出 (S) */
|
||
uint8_t crc[2]; /* 校验 */
|
||
uint8_t end_Flag; /* 结束标志 */
|
||
}recv_config_info;
|
||
|
||
typedef struct _config_info{
|
||
/* SL */
|
||
uint8_t address[7]; /* 地址 */
|
||
uint8_t Access_Node_Type[2]; /* 接入节点类型 */
|
||
uint8_t Communication_Methods[2]; /* 通信方式 */
|
||
uint8_t gw485_Baud[4]; /* 串口波特率,为0代表bms不支持通信 */
|
||
uint8_t bat485_Baud[4]; /* 串口波特率 */
|
||
|
||
/* HY */
|
||
uint8_t hardwareID[6]; /* 硬件ID */
|
||
uint8_t communicationID[4]; /* 通信ID */
|
||
uint8_t protocolType; /* 协议类型; 0x01表示:汇源协议(波特率9600) 0x02表示:南瑞协议(波特率115200)*/
|
||
|
||
uint16_t constantVoltageV; /* 电压高于该(ConstantVoltageV / 100)且电流大于(FloatI / 100 + 0.1)进行恒压充电 */
|
||
uint16_t floatI; /* 电压高于该(ConstantVoltageV / 100)且电流低于(FloatI / 100)进行浮充充电 */
|
||
uint16_t startSolarOpenCircuitV; /* 太阳能板开路电压高于该(电压 / 100)开始充电 */
|
||
uint16_t stopSolarOpenCircuitV; /* 太阳能板开路电压高于该(电压 / 100)停止充电 */
|
||
uint16_t constantVoltageChargeV; /* 恒压充电时的输出电压 */
|
||
uint16_t FloatV; /* 浮充电压 */
|
||
uint16_t checkSolarOpenCircuitVTime; /* 启动任务中太阳能板开路电压检测时间 */
|
||
uint16_t registerRefreshTime; /* 寄存器数据刷新时间 */
|
||
uint16_t sensorEnableBroadcastTime; /* 传感器运行再次注册的间隔 */
|
||
uint16_t HighSideMosTemperature_stop; /* 当上桥温度达到该值时,停止输出 */
|
||
uint16_t HighSideMosTemperature_end; /* 当上桥温度上升到该值时,降低功率运行 */
|
||
uint16_t HighSideMosTemperature_start; /* 当上桥温度降低到该值时,按照正常情况输出 */
|
||
uint16_t loopImpedance; /* 回路阻抗大小 (mΩ) */
|
||
|
||
uint16_t outputAgainFlagTime; /* 出现短路保护后延长该段时间再次检测是否短路,仍然短路则关闭输出 */
|
||
uint16_t excessiveLoadFlagTime; /* 出现过载后,在该段时间中再次出现过载,则关闭输出 */
|
||
uint16_t eLAgainTime; /* 出现过载过载保护后,该段时间后,再次尝试输出 */
|
||
|
||
uint16_t crc; /* 校验 */
|
||
}config_info;
|
||
#define CONFIG_INFO_SIZE (sizeof(config_info))
|
||
#pragma pack(pop)
|
||
|
||
#define CONFIG_SAVE_ADDR_BEGIN (0x00)
|
||
#define CONFIG_SAVE_ADDR_END (0x00 + CONFIG_INFO_SIZE)
|
||
|
||
|
||
#endif /* APP_INC_INFLASH_H_ */
|